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