Golang Go语言中开源了一个支持运行时依赖注入的开发框架

发布于 1周前 作者 vueper 来自 Go语言

其实这个项目在 4 年前就已经开始了,因为所有的功能都是基于日常工作中的需求来的,断断续续的补充和完善功能,之前都是在自己公司这边的各种 Go 项目和我开源的一些项目中使用。很早之前就想把它开源出来,但是一直懒得写文档(感觉写文档是最难得事儿了),所以一直让它静静地躺 Github 。今天终于补充了个简版的文档,是时候把它拿出来了😀。

Glacier 是一款支持依赖注入的模块化的应用开发框架,它以 go-ioc 依赖注入容器核心,为 Go 应用开发解决了依赖传递和模块化的问题。

感兴趣的朋友们欢迎来看看啊,有砖拍砖,有需求提需求,一定虚心向大家学习!项目在这里 https://github.com/mylxsw/glacier


Golang Go语言中开源了一个支持运行时依赖注入的开发框架

更多关于Golang Go语言中开源了一个支持运行时依赖注入的开发框架的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

9 回复

🐮🍺
歪个楼,OP 头像是哪个角色,看着还挺好看的,google 搜不到

更多关于Golang Go语言中开源了一个支持运行时依赖注入的开发框架的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


马上就会有 Gopher 回复:“Javaer !请停止你的 java 行为!”

核心思想应该是借鉴 PHP 的 laravel, 但是为啥不用 wire 完成依赖, 还是喜欢清凉

还是喜欢轻量的框架, 各种组件想怎么换就怎么换

fx/dig 一样?

IOC 部分的设计决策非常符合我的偏好,app framework 部分就有点过重了,支持一下

若干年前网上看到一个图,自己临摹手绘的 😀

依赖注入更喜欢用 wire ,可以看到生成的代码,方便查看依赖注入的实际执行流程。
https://github.com/go-eagle/eagle

针对您提到的Golang中开源的支持运行时依赖注入的开发框架,以下是我的专业回复:

在Golang社区中,依赖注入(DI)是一种重要的设计模式,它允许开发者将对象的依赖关系在外部进行管理,而非由对象自身创建或查找依赖。这有助于构建更可维护、可测试的代码。

关于您提到的支持运行时依赖注入的框架,虽然Golang本身没有内置的依赖注入框架,但社区已经开发出了多个优秀的开源依赖注入库。例如,uber-go/dig和facebookgo/inject就是使用反射实现的运行时依赖注入工具。这些工具能够在程序运行时动态地解析和注入依赖关系。

此外,值得一提的是,Google开源的wire库则采取了不同的策略。wire是一个依赖注入代码生成工具,它在编译期间生成依赖注入代码,而非在运行时。这种方式的好处是能够在编译阶段就发现依赖注入的问题,从而提高代码的健壮性。

总的来说,Golang社区提供了多种依赖注入的解决方案,您可以根据项目的具体需求选择合适的框架或库来实现依赖注入。如果您对某个特定的框架或库有兴趣,建议查阅其官方文档或社区资源以获取更详细的信息。

回到顶部