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注入顺序
Click to show internal directories.
Click to hide internal directories.