我们组用的是 facebook 的 inject 还可以,不过这个项目已经停止维护了
推荐 https://github.com/google/wire , 自己写各种 provider, 然后在编译器生成整个注入链路, 不和 web 框架绑定起来, 可以使用任何 web 框架
go 下面的依赖注入不太好用,不过由于 go 的特性,在同一个包下面的变量在不同的 go 文件里面可以互相引用,所以只需要手动初始化一次即可不限量使用。
你可以看下我的这个项目 https://github.com/dushixiang/next-terminal
我也是在摸索 go 的写法
iris 自带依赖注入 https://github.com/kataras/iris/wiki/dependency-injection
endure 也可以实现依赖注入,但是偏应用相关 https://github.com/spiral/endure