Questions tagged «google-guice»

4
为什么我们需要依赖注入的框架?[关闭]
我一直在阅读有关控制反转原理和依赖注入作为其实现的更多信息,并且我确信我理解它。 似乎基本上是在说“不要在类中声明类成员的实例化”。相反,实例化应该通过构造函数传递并分配;从外部来源“注入”到班级中。 如果就这么简单(看起来如此),为什么我们需要像spring或guice这样的带有注释的框架?我在这里缺少基本的东西吗?我真的很难理解依赖注入框架的用途。 编辑:关于可能的重复,我相信我的问题更加独特,因为它询问的是一般的DI框架,而不仅仅是Spring。Spring不仅是一个DI框架,所以有很多人想要使用Spring的原因都与DI无关。

2
逐渐将代码库移至依赖项注入容器
我有一个很大的代码库,其中包含许多“反模式”单例,带有静态方法的实用程序类以及使用new关键字创建自己的依赖项的类。这使得代码很难测试。 我想逐步将代码迁移到依赖项注入容器(在我的情况下是Guice,因为它是一个GWT项目)。从我对依赖注入的理解来看,它全有还是全无。所有类都由Spring / Guice管理,或者没有。由于代码库很大,因此我无法在一夜之间转换代码。所以我需要一种逐渐做到的方法。 问题是,当我从一个需要注入其他类的类开始时,我不能@Inject在那些类中使用简单的类,因为那些类尚未由容器管理。因此,这将创建一条长链,直至未注入任何地方的“顶级”类。 我看到的唯一方法是Injector暂时使/应用程序上下文通过单例全局可用,以便其他类可以从中获取托管bean。但这与不composition root向应用程序公开的重要思想相矛盾。 另一种方法是自下而上:从“高级”类开始,将它们包含在依赖项注入容器中,然后慢慢移至“较小”类。但是然后我不得不等待很长时间,因为我可以测试仍然依赖于全局变量/静态变量的较小的类。 实现这种逐步迁移的方式是什么? PS问题:依赖注入的渐进方法在标题上相似,但是它不能回答我的问题。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.