1 Star 0 Fork 0

肖金光 / goclean

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
controller.go 1.03 KB
一键复制 编辑 原始数据 按行查看 历史
xiaojg-mbp 提交于 2024-01-11 16:56 . go11添加中间件认证
package ioc
import "fmt"
// 管理Controller对象
// 采用一个map来存储对象, 存储在内存中, 程序启动 解决多个impl对象的依赖问题
var controller = map[string]IocObject{}
// 对所有的对象统一执行 初始化
func InitController() error {
for k, v := range controller {
err := v.Init()
if err != nil {
return fmt.Errorf("init %s error, %s", k, err)
}
}
return nil
}
// 可以管理任何对象, 我们定义的业务对象是不是还有基础的方法
// Init() 初始化对象的
// 托管业务实现的类
func RegistryController(obj IocObject) {
// 避免覆盖
// if _, ok := controller[obj.Name()]; ok {
// panic("改对象已经注册: " + obj.Name())
// }
controller[obj.Name()] = obj
}
// 打印下当前已经托管的实例的名称
func ShowConntrollers() (names []string) {
for k := range controller {
names = append(names, k)
}
return names
}
func GetController(name string) any {
v, ok := controller[name]
if !ok {
panic("controller not fount: %s")
}
return v
}
Go
1
https://gitee.com/aviptle/goclean.git
git@gitee.com:aviptle/goclean.git
aviptle
goclean
goclean
6b9efd2ceda8

搜索帮助