容器
简介
Container是Firmeve的基础,一切都是以Container为基础实现ioc开始。
基础示例
新建容器
var c = container.New()数据绑定
// 单例数据绑定
foo := new(Foo)
c.Bind("foo", foo)
// 绑定函数
var f = func() string {
return "rand string"
}
c.Bind("f", f)
// 绑定slice
var s = []string{"a", "b"}
c.Bind("s", s)
// 强制覆盖已存在的单例
c.Bind("foo", new(Foo2), WithCover(true))注意
绑定的类型仅支持:array, slice, map, func, prt(struct), struct
只有函数类型是非单例类型,每次调用时会自动执行函数方法来获取结果
更多高级用户请参见 container_test
数据获取
实例解析
通过Make方法可以轻松完成自动解析,目前解析对象包括:
容器中已存在对象
结构体
函数
注意:
如果解析注入的对象不是指针类型则会自动忽略,不会自动赋值。
带有动态参数
...params的函数暂时无法解析
单独使用
Last updated
Was this helpful?