Documentation ¶
Index ¶
- Constants
- Variables
- func CloneCustomBeanFactory(fac CustomBeanFactory, beanFunc ...interface{}) *defaultCustomBeanFactory
- func NewContainer(opts ...ContainerOpt) *defaultContainer
- func NewCustomBeanFactory(beanFunc interface{}, initMethod, destroyMethod string) *defaultCustomBeanFactory
- func NewCustomBeanFactoryWithName(beanFunc interface{}, names []string, initMethod, destroyMethod string) *defaultCustomBeanFactory
- func NewCustomBeanFactoryWithOpts(beanFunc interface{}, opts ...beanFactoryOpt) *defaultCustomBeanFactory
- func RegisterBeanDefinitionCreator(kind reflect.Kind, creator DefinitionCreator)
- func SingletonFactory(function interface{}) interface{}
- type Classifier
- type Container
- type ContainerOpt
- type CustomBeanFactory
- type Definition
- type DefinitionCreator
- type Disposable
- type Initializing
- type LifeCycle
- type RegisterOpt
- type Setter
Constants ¶
View Source
const (
KeySetOrder = "register.bean.order"
)
Variables ¶
View Source
var ( InitializingType = reflect.TypeOf((*Initializing)(nil)).Elem() DisposableType = reflect.TypeOf((*Disposable)(nil)).Elem() ErrorType = reflect.TypeOf((*error)(nil)).Elem() )
View Source
var ( DummyType = reflect.TypeOf((*struct{})(nil)).Elem() DummyValue = reflect.ValueOf(struct{}{}) )
View Source
var CustomBeanFactoryOpts customBeanFactoryOpts
Functions ¶
func CloneCustomBeanFactory ¶ added in v0.2.11
func CloneCustomBeanFactory(fac CustomBeanFactory, beanFunc ...interface{}) *defaultCustomBeanFactory
func NewContainer ¶
func NewContainer(opts ...ContainerOpt) *defaultContainer
func NewCustomBeanFactory ¶ added in v0.2.8
func NewCustomBeanFactory(beanFunc interface{}, initMethod, destroyMethod string) *defaultCustomBeanFactory
func NewCustomBeanFactoryWithName ¶ added in v0.2.8
func NewCustomBeanFactoryWithOpts ¶ added in v0.2.10
func NewCustomBeanFactoryWithOpts(beanFunc interface{}, opts ...beanFactoryOpt) *defaultCustomBeanFactory
func RegisterBeanDefinitionCreator ¶
func RegisterBeanDefinitionCreator(kind reflect.Kind, creator DefinitionCreator)
注册BeanDefinition创建器,使其能处理更多类型。 默认支持Pointer、Function
func SingletonFactory ¶ added in v0.2.8
func SingletonFactory(function interface{}) interface{}
Types ¶
type Classifier ¶ added in v0.2.6
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 CustomBeanFactory ¶ added in v0.2.8
type CustomBeanFactory interface { // 返回或者创建bean的方法 // 该方法可能包含一个或者多个参数,参数会在实例化时自动注入 // 该方法只能有一个返回值,返回的值将被注入到依赖该类型值的对象中 BeanFactory() interface{} // BeanFactory返回创建bean方法如果带参数,且参数需要指定注入名称时将根据InjectNames返回的名称列表进行匹配 // 注意: // 1、如果所有参数都不需要名称匹配,则返回nil // 2、如果需要使用名称匹配则:返回的string数组长度需要与创建bean方法的常数个数一致 // 3、如果需要部分匹配,则需要自动匹配的参数对应的name填入空字符串"" InjectNames() []string // 获得Bean生命周期相关的方法名 BeanLifeCycleMethodNames() map[LifeCycle]string //Deprecated: BeanFactory返回值包含的初始化方法名,可为空 InitMethodName() string //Deprecated: BeanFactory返回值包含的销毁方法名,可为空 DestroyMethodName() string }
type Definition ¶
type Definition interface { // 类型 Type() reflect.Type // 名称 Name() string // 获得值 Value() reflect.Value // 获得注册的bean对象 Interface() interface{} // 是否是可注入对象 IsObject() bool // 在属性配置完成后调用 AfterSet() error // 销毁对象 Destroy() error // 对对象进行分类 Classify(classifier Classifier) (bool, 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.