Documentation ¶
Index ¶
- Constants
- type BeanMapper
- type GetterFunc
- type Injecter
- func (injecter *Injecter) Apply(obj interface{})
- func (injecter *Injecter) Configs(objs ...interface{})
- func (injecter *Injecter) Get(key interface{}, f GetterFunc) (ni interface{})
- func (injecter *Injecter) Invoke(f interface{}) ([]interface{}, error)
- func (injecter *Injecter) Mapping(key, val interface{})
- func (injecter *Injecter) Set(objs ...interface{})
- type Injector
- type Invoker
- type Mapper
Constants ¶
View Source
const ( InjectTag = "inject" InjectTagVal = "-" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GetterFunc ¶
type Injecter ¶
type Injecter struct {
// contains filtered or unexported fields
}
func (*Injecter) Get ¶
func (injecter *Injecter) Get(key interface{}, f GetterFunc) (ni interface{})
type Injector ¶
type Injector interface { //Apply 对对象进行递归注入,递归调用 Apply 方法, obj必须是指针结构体 //需要进行注入的字段,必须打上tag: `inject:"-"` //会优先从容器里获取注入对象,没有则实例一个,并把实例对象放入容器保存 //所有的注入对象都是单例,使用的时候需要注意 Apply(obj interface{}) //Config 会对对象进行依赖注入 //并且, 会自动调用对象的所有方法,如果对象方法有且仅有一个返回值,那么返回值会保存再 Mapper 里面 //对象返回的返回值可以是容器或者指针struct Configs(objs ...interface{}) }
type Invoker ¶
type Invoker interface { //Invoke 尝试把f当做func执行,如果f不是func会panic; //在容器里尝试获取f的参数对应的值,作为参数传入执行f,如果没有相应的值会执行失败,返回error //f的参数值可以通过 Mapper.Set 初始化 Invoke(f interface{}) ([]interface{}, error) }
type Mapper ¶
type Mapper interface { //Get 从容器里获取对象 //key可以是 reflect.Type,也可以是某种类型或者接口和变量 //f, 单容器里面没有找到相应的值的时候,会尝试调用f Get(key interface{}, f GetterFunc) interface{} //Set 把对象放入容器里,对象可以是任意类型 //注意,同一种类型只会有一个值 Set(objs ...interface{}) //Mapping 设置映射关系,用于接口类型和实体的映射 //key必须是指针类型的接口,例如:(*MyInterface)(nil) //val必须是指针类型的结构体 Mapping(key, val interface{}) }
Click to show internal directories.
Click to hide internal directories.