Go全家桶规划之二: GO依赖注入框架godi之六,实现BEAN注册容器、 自动注入, 工业级巨匠
package main
import (
"fmt"
"github.com/didi/gendry/builder"
"github.com/morgine/godi"
)
// 定义一个简单的结构体作为BEAN
type MyBean struct {
Value string
}
// 实现BEAN的初始化方法
func (b *MyBean) AfterPropertiesSet() error {
b.Value = "Initialized"
return nil
}
func main() {
// 创建BEAN容器
container := godi.NewBeanContainer()
// 注册BEAN
err := container.RegisterBean(&MyBean{}).ExportAs("myBean")
if err != nil {
panic(err)
}
// 启动容器
err = container.Start()
if err != nil {
panic(err)
}
// 获取并使用BEAN
myBean, err := container.GetBean("myBean")
if err != nil {
panic(err)
}
myBeanInstance, ok := myBean.(*MyBean)
if !ok {
panic("Bean is not of type MyBean")
}
fmt.Println(myBeanInstance.Value) // 输出: Initialized
}
这段代码展示了如何使用godi库创建一个简单的依赖注入容器,注册一个BEAN,并在BEAN上执行初始化方法。然后启动容器并获取该BEAN,最后使用它。这个过程是工业级应用中依赖注入的基本使用方式。
评论已关闭