Mix XDI V1.1 - Golang DI、IoC 依赖注入容器
OpenMix 出品:https://openmix.org
Mix XDI
DI、IoC 容器
DI, IoC container
Overview
一个创建对象以及处理对象依赖关系的库,该库可以实现统一管理依赖,全局对象管理,动态配置刷新等。
Installation
go get github.com/mix-go/xdi
Quick start
通过依赖配置实例化一个单例
package main import ( "github.com/mix-go/xdi" ) type Foo struct { } func init() { obj := &xdi.Object{ Name: "foo", New: func() (interface{}, error) { i := &Foo{} return i, nil }, } if err := xdi.Provide(obj); err != nil { panic(err) } } func main() { var foo *Foo if err := xdi.Populate("foo", &foo); err != nil { panic(err) } // use foo }
Reference
依赖配置中引用另一个依赖配置的实例
package main import ( "github.com/mix-go/xdi" ) type Foo struct { Bar *Bar } type Bar struct { } func init() { objs := []*xdi.Object{ { Name: "foo", New: func() (interface{}, error) { // reference bar var bar *Bar if err := xdi.Populate("bar", &bar); err != nil { return nil, err } i := &Foo{ Bar: bar, } return i, nil }, }, { Name: "bar", New: func() (interface{}, error) { i := &Bar{} return i, nil }, NewEverytime: true, }, } if err := xdi.Provide(objs...); err != nil { panic(err) } } func main() { var foo *Foo if err := xdi.Populate("foo", &foo); err != nil { panic(err) } // use foo }
Refresh singleton
程序执行中配置信息发生变化时,可以刷新单例的实例
obj, err := xdi.Container().Object("foo") if err != nil { panic(err) } if err := obj.Refresh(); err != nil { panic(err) }
License
Apache License Version 2.0, http://www.apache.org/licenses/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
bee-spring-boot V1.9.5.boot2.4.2,整合 Bee 和 Spring-boot
bee-spring-bootV1.9.5.boot2.4.2(立夏版) Bee1.9.5 整合Spring-boot2.4.2 并且提供bee-spring-boot-starter. maven依赖: <dependency> <groupId>org.teasoft</groupId> <artifactId>bee-spring-boot</artifactId> <version>1.9.5.boot2.4.2</version> </dependency> 直接使用相应starter: <parent> <groupId>org.teasoft</groupId> <artifactId>bee-spring-boot-starter</artifactId> <version>1.9.5.boot2.4.2</version> </parent> 相应demo...
- 下一篇
工信部最新文件:推动700MHz频率迁移,加快700MHz 5G网络部署
工信部近日发布发布了《5G应用“扬帆”行动计划(2021-2023年)》的征求意见稿。 根据该征求意见稿,总体目标中,到2023年将打造IT(信息技术)、CT(通信技术)、OT(运营技术)深度融合新生态,实现重点领域5G应用深度和广度双突破,构建技术产业和标准体系双支柱。5G个人用户普及率超过40%,用户数超过5.6亿。5G网络接入流量占比超50%,5G网络使用效率明显提高。 垂直行业领域,届时大型工业企业的5G应用渗透率超过35%,电力、采矿等领域5G应用实现规模化复制推广,5G+车联网试点范围进一步扩大,提升农业水利等传统行业数字化转型升级。社会民生领域,打造一批5G+智慧教育、5G+智慧医疗的样板项目,利用5G智慧城市等管理水平。每万人拥有5G基站数超过18个,建成超过3000个5G行业虚拟专网。 到2023年底,要求形成基础共性和重点行业5G应用标准体系,完成30项以上重点行业关键标准研制。 支持加快云AR/VR头显、5G+4K摄像机、5G全景VR相机等智能产品推广,拉动新型产品和新型内容消费,促进新型体验类消费发展。 在“5G+融合媒体”的新场景中,支持开展5G背包、超高清摄...
相关文章
文章评论
共有0条评论来说两句吧...