Documentation ¶
Overview ¶
Package container provides an IoC container for Go projects. It provides simple, fluent and easy-to-use interface to make dependency injection in GoLang easier.
Package container provides an IoC container for Go projects. It provides simple, fluent and easy-to-use interface to make dependency injection in GoLang easier.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Configurator ¶
type Configurator func(config *Config)
var Default Configurator = func(config *Config) { config.isDefault = true }
var Duplicate Configurator = func(config *Config) { config.duplicate = true }
var NoName Configurator = func(config *Config) {
config.name = ""
}
var Singleton Configurator = func(config *Config) { config.transient = false }
var Transient Configurator = func(config *Config) { config.transient = true }
func IsDefault ¶ added in v2.6.1
func IsDefault(isDefault bool) Configurator
func Name ¶
func Name(name string) Configurator
type Container ¶
type Container interface { // Resolve will resolve the dependency and return a appropriate concrete of the given abstraction. // It can take an abstraction (interface reference) and fill it with the related implementation. // It also can take a function (receiver) with one or more arguments of the abstractions (interfaces) that need to be // resolved, Container will invoke the receiver function and pass the related implementations. Resolve(receiver any) // ResolveByName will resolve the named dependency and return a appropriate concrete of the given abstraction. // It can take an abstraction (interface reference) and fill it with the related implementation. // It also can take a function (receiver) with one or more arguments of the abstractions (interfaces) that need to be // resolved, Container will invoke the receiver function and pass the related implementations. ResolveByName(name string, receiver any) // ResolveByNameOrDefault will resolve the named dependency and return a appropriate concrete of the given abstraction. // If named value doesn't exist, default value will be returned ResolveByNameOrDefault(name string, receiver any) // Status of the container, used for debugging Status() StatusType // Status as above but with reg ex filter StatusWithFilter(filter string) StatusType }
Container interface for resolving registered concrete types
type ContainerBuilder ¶
type ContainerBuilder interface { Container // Register factory function // It takes a resolver function which returns the concrete and its return type matches the abstraction (interface). // Function is called on Resolve // The resolver function can have arguments of abstraction that are bound in Container. Register(resolver any, configurators ...Configurator) ContainerBuilder // Clear will empty the container and remove all the bindings. Clear() }
ContainerBuilder interface for registering abstractions
func NewContainer ¶
func NewContainer() ContainerBuilder
Create empty container Add container itself
type StatusType ¶ added in v2.5.0
func (StatusType) String ¶ added in v2.5.0
func (s StatusType) String() string
func (StatusType) StringMl ¶ added in v2.5.0
func (s StatusType) StringMl() (lines []string)
Click to show internal directories.
Click to hide internal directories.