bean

package
Version: v0.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2021 License: Apache-2.0 Imports: 7 Imported by: 3

Documentation

Index

Constants

View Source
const (
	KeySetOrder = "register.bean.order"
)

Variables

This section is empty.

Functions

func NewContainer

func NewContainer(opts ...ContainerOpt) *defaultContainer

func RegisterBeanDefinitionCreator

func RegisterBeanDefinitionCreator(kind reflect.Kind, creator DefinitionCreator)

注册BeanDefinition创建器,使其能处理更多类型。 默认支持Pointer、Function

Types

type Container

type Container interface {
	// 注册对象
	// opts添加bean注册的配置,详情查看RegisterOpt
	Register(o interface{}, opts ...RegisterOpt) error

	// 根据名称注册对象
	// opts添加bean注册的配置,详情查看RegisterOpt
	RegisterByName(name string, o interface{}, opts ...RegisterOpt) error

	// 根据名称获得对象
	// return:o:对象,ok:如果成功为true,否则为false
	Get(name string) (o interface{}, ok bool)

	// 根据类型获得对象,值设置到参数中
	// return:ok:如果成功为true,否则为false
	GetByType(o interface{}) bool

	// 获得对象定义
	// return:ok:如果成功为true,否则为false
	GetDefinition(name string) (d Definition, ok bool)

	// 添加对象定义
	// return:失败返回错误
	PutDefinition(name string, definition Definition) error

	// 遍历所有对象定义
	// f:key为注册的名称(可能为系统自动生成或手工指定)value为对象定义
	// 返回true则继续遍历,返回false停止遍历。
	Scan(f func(key string, value Definition) bool)
}

type ContainerOpt added in v0.1.1

type ContainerOpt func(*defaultContainer)

func OptContainerEnableCache added in v0.1.1

func OptContainerEnableCache(flag bool) ContainerOpt

配置是否开启key缓存,用于提高scan的性能 true为开启,false为关闭 默认开启

type Definition

type Definition interface {
	// 类型
	Type() reflect.Type

	// 名称
	Name() string

	// 获得值
	Value() reflect.Value

	// 获得注册的bean对象
	Interface() interface{}

	// 是否是可注入对象
	IsObject() bool

	// 在属性配置完成后调用
	AfterSet() error

	// 销毁对象
	Destroy() error
}

func CreateBeanDefinition

func CreateBeanDefinition(o interface{}) (Definition, error)

type DefinitionCreator

type DefinitionCreator func(o interface{}) (Definition, error)

type Disposable

type Disposable interface {
	// 进入销毁阶段,应该尽快做回收处理并退出处理任务
	BeanDestroy() error
}

type Initializing

type Initializing interface {
	// 当初始化和注入完成时回调
	BeanAfterSet() error
}

type RegisterOpt added in v0.0.4

type RegisterOpt func(setter Setter)

Bean注册配置,已支持的配置有: * bean.SetOrder(int) 配置bean注入顺序

func SetOrder added in v0.0.4

func SetOrder(order int) RegisterOpt

配置bean注入顺序

type Setter added in v0.0.4

type Setter interface {
	Set(key string, value interface{})
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL