container:容器是Go的运行时依赖项注入库
容器
容器是一种为Go语言开发的运行时依赖注入库。Go语言的语言特性决定了实现某种类型安全的依赖注入容器并不太容易,因此容器大量使用了Go的反射机制。场景对性能要求并非那个苛刻,那Container非常适合你。
并非说对性能要求苛刻的环境中就不能使用了,你可以把容器作为一个对象依赖管理工具,在你的业务初始化时获取依赖的对象。
使用方式
go get github.com/mylxsw/container
要创建一个Container实例,使用containier.New方法
cc := container.New()
此时就创建了一个空的容器。
您也可以使用container.NewWithContext(ctx)来创建容器,创建之后,可以自动的把已经存在的context.Context对象添加到容器中,由容器托管。
对象绑定
在使用之前,我们需要先将我们要托管的对象告诉容器。容器支持三种