如何正确使用Guice的依赖注入

时间:2014-08-20 17:56:58

标签: dependency-injection guice

我几个月来一直在使用google-guice。我对它很满意,但似乎我错了。我正在创造很多辅助注射,有时还有两个注射器。

因此,我想了解这里的一般原则。

对于连接主类中所有内容的所有应用程序,是否应该有一个注入器?

最好的做法是,从应用程序的开始尝试注入在构造函数中有多少? (我看到测试的优势)

我的主要问题是,有时我觉得某些对象组的创建属于某个组件。那需要封装吗?你会如何处理?

如果您有一个重要的互连lservices深层结构,那么如何传递注入器或所需的对象。你必须找到办法吗?我在辅助注射方面采取了很多措施。

即使参数可以在对象之外创建,我仍然希望让服务创建参数并将其传递给辅助工厂。因为参数的创建有时涉及某些属于服务的逻辑(有时)

任何建议都会有所帮助

非常感谢

1 个答案:

答案 0 :(得分:1)

  

对于连接主类中所有内容的所有应用程序,是否应该有一个注入器?

通常,是的。一个注射器用于应用;和一个注射器进行测试。

这当然取决于模块如何相互依赖,以及它是命令行应用程序还是Web应用程序。

  

最好的做法是,从应用程序的开始尝试注入在构造函数中有多少? (我看到测试的优势)

  • 您可以直接加载所有模块
  • 或者,如果您想要对模块集进行更多控制,可以使用安装其他模块的单个模块创建注入器。
  

如何传递注射器或所需的物体。

使用@AssistedFactoryModuleBuilder。 请参阅assisted injection