我想解决如何在Play Framework 2.4中使用依赖注入。我熟悉一般原则,但并不真正了解对设计的影响。我的一般推理是,控制器类中的静态方法与使用全局变量类似,并且很容易导致线程安全等问题,而且总体上鼓励糟糕的设计。因此,由于Play现在鼓励切换到依赖注入,所以我应该切换。玩框架java依赖项注入 - 何时使用singletons
我感到困惑的是在这种情况下什么是好的做法。当我阅读Play官方文档时,会简要介绍依赖注入,然后及时提及@Singleton注释。并且可用示例(http://www.typesafe.com/activator/template/play-guice)也讨论了单例“WelcomeTextGenerator”类。
所以我想知道,我应该使用单例对象作为例子似乎暗示?如果是这种情况,与旧的静态方法方法相比有什么优势?是否有特定的对象类型(例如,控制器?)应该是单例,并且在不将对象标记为单例时会有性能影响?
谢谢 - 这就是我所需要的。我发现你链接到的“范围”页面非常有用。Play文档中为什么“单身人士”被突出显示或者还有其他选项对我来说并不明显 - 这更有意义。 – myrosia
经过多一点研究后,一个潜在的警告:“范围”Guice页面讨论了请求范围和会话范围,但尽我所知,Play不支持这些,因为它不使用Google的servlet容器实现,也不会目前提供自己的。所以在这个意义上,文档页面可能会产生误导,因为它没有阐明实现依赖关系。 – myrosia