Documentation
¶
Index ¶
- Constants
- Variables
- func Bound(serviceAny any) bool
- func Exists(serviceAny any) bool
- func Get(serviceAny any) (any, error)
- func GetFullName(p reflect.Type) string
- func GetWithParams(serviceName string, params ...any) (any, error)
- func InjectOn(ptr any)
- func IsShare(serviceAny any) bool
- func List() []string
- func MustGet(serviceAny any, params ...any) any
- func Register(providers ...AbstractServiceProvider)
- func Remove(serviceAny any)
- func ResolveServiceName(service any) string
- type AbstractBuilder
- type AbstractServiceProvider
- type BuildHandler
- type BuildWithHandler
- type Definition
- func Attempt(serviceAny any, handler BuildHandler, singleton bool) *Definition
- func Bind(serviceAny any, handler BuildHandler) *Definition
- func Instance(serviceAny any, instance ...any) *Definition
- func NewDefinition(name string, factory BuildHandler, shared bool) *Definition
- func NewParamsDefinition(name string, factory BuildWithHandler) *Definition
- func Set(serviceAny any, handler BuildHandler, singleton bool) *Definition
- func SetWithParams(serviceAny any, handler BuildWithHandler) *Definition
Constants ¶
View Source
const ErrServiceNotExistsFormat = "service %s not exists"
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 InjectOn ¶ added in v0.0.6
func InjectOn(ptr any)
InjectOn 作用, 解析object对象内可识别的字段自动注入, 引用服务非数据安全, 需要自行管理 object 需要被注入的对象, 仅注入为nil的属性字段
func Register ¶ added in v0.0.6
func Register(providers ...AbstractServiceProvider)
func ResolveServiceName ¶
Types ¶
type AbstractBuilder ¶
type AbstractBuilder interface { Bind(any, BuildHandler) *Definition Singleton(any, BuildHandler) *Definition Instance(any, ...any) *Definition Register(...AbstractServiceProvider) Set(any, BuildHandler, bool) *Definition SetWithParams(any, BuildWithHandler) *Definition Add(*Definition) Get(any) (any, error) GetWithParams(any, ...any) (any, error) MustGet(any, ...any) any GetDefinition(any) (*Definition, error) Exists(any) 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) (any, error)
type BuildWithHandler ¶
type BuildWithHandler func(builder AbstractBuilder, params ...any) (any, error)
type Definition ¶
func Attempt ¶ added in v0.0.6
func Attempt(serviceAny any, handler BuildHandler, singleton bool) *Definition
func Bind ¶ added in v0.0.6
func Bind(serviceAny any, handler BuildHandler) *Definition
func Instance ¶ added in v0.0.6
func Instance(serviceAny any, instance ...any) *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 any, handler BuildHandler, singleton bool) *Definition
func SetWithParams ¶
func SetWithParams(serviceAny any, 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.