Documentation ¶
Index ¶
- Variables
- func Bound(serviceAny interface{}) bool
- func Exists(serviceAny interface{}) bool
- func Get(serviceAny interface{}) (interface{}, error)
- func GetFullName(p reflect.Type) string
- func GetWithParams(serviceName string, params ...interface{}) (interface{}, error)
- func InjectOn(ptr interface{})
- func IsShare(serviceAny interface{}) bool
- func List() []string
- func MustGet(serviceAny interface{}, params ...interface{}) interface{}
- func Register(providers ...AbstractServiceProvider)
- func Remove(serviceAny interface{})
- func ResolveServiceName(service interface{}) string
- type AbstractBuilder
- type AbstractServiceProvider
- type BuildHandler
- type BuildWithHandler
- type Definition
- func Attempt(serviceAny interface{}, handler BuildHandler, singleton bool) *Definition
- func Bind(serviceAny interface{}, handler BuildHandler) *Definition
- func Instance(serviceAny interface{}, instance ...interface{}) *Definition
- func NewDefinition(name string, factory BuildHandler, shared bool) *Definition
- func NewParamsDefinition(name string, factory BuildWithHandler) *Definition
- func Set(serviceAny interface{}, handler BuildHandler, singleton bool) *Definition
- func SetWithParams(serviceAny interface{}, handler BuildWithHandler) *Definition
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrNotSupportedType = fmt.Errorf("unsupported type")
View Source
var ErrServiceSingleton = errors.New("service is singleton, cannot use it with GetWithParams")
Functions ¶
func GetFullName ¶ added in v0.0.6
func GetWithParams ¶
func InjectOn ¶ added in v0.0.6
func InjectOn(ptr interface{})
InjectOn 作用, 解析object对象内可识别的字段自动注入, 引用服务非数据安全, 需要自行管理 object 需要被注入的对象, 仅注入为nil的属性字段
func Register ¶ added in v0.0.6
func Register(providers ...AbstractServiceProvider)
func ResolveServiceName ¶
func ResolveServiceName(service interface{}) string
Types ¶
type AbstractBuilder ¶
type AbstractBuilder interface { Bind(interface{}, BuildHandler) *Definition Singleton(interface{}, BuildHandler) *Definition Instance(interface{}, ...interface{}) *Definition Register(...AbstractServiceProvider) Set(interface{}, BuildHandler, bool) *Definition SetWithParams(interface{}, BuildWithHandler) *Definition Add(*Definition) Get(interface{}) (interface{}, error) GetWithParams(interface{}, ...interface{}) (interface{}, error) MustGet(interface{}, ...interface{}) interface{} GetDefinition(interface{}) (*Definition, error) Exists(interface{}) bool }
func GetDefaultDI ¶ added in v0.0.6
func GetDefaultDI() AbstractBuilder
type AbstractServiceProvider ¶ added in v0.0.6
type AbstractServiceProvider interface {
Register(AbstractBuilder)
}
type BuildHandler ¶
type BuildHandler func(builder AbstractBuilder) (interface{}, error)
type BuildWithHandler ¶
type BuildWithHandler func(builder AbstractBuilder, params ...interface{}) (interface{}, error)
type Definition ¶
func Attempt ¶ added in v0.0.6
func Attempt(serviceAny interface{}, handler BuildHandler, singleton bool) *Definition
func Bind ¶ added in v0.0.6
func Bind(serviceAny interface{}, handler BuildHandler) *Definition
Bind 绑定非共享服务
func Instance ¶ added in v0.0.6
func Instance(serviceAny interface{}, instance ...interface{}) *Definition
func NewDefinition ¶
func NewDefinition(name string, factory BuildHandler, shared bool) *Definition
func NewParamsDefinition ¶
func NewParamsDefinition(name string, factory BuildWithHandler) *Definition
func Set ¶
func Set(serviceAny interface{}, handler BuildHandler, singleton bool) *Definition
func SetWithParams ¶
func SetWithParams(serviceAny interface{}, handler BuildWithHandler) *Definition
func (*Definition) IsResolved ¶
func (d *Definition) IsResolved() bool
func (*Definition) IsSingleton ¶
func (d *Definition) IsSingleton() bool
func (*Definition) ServiceName ¶
func (d *Definition) ServiceName() string
func (*Definition) SetShared ¶
func (d *Definition) SetShared(shared bool)
func (*Definition) SetTypeName ¶
func (d *Definition) SetTypeName(call func() string)
func (*Definition) TypeName ¶
func (d *Definition) TypeName() string
Click to show internal directories.
Click to hide internal directories.