【发布时间】:2013-03-24 15:17:38
【问题描述】:
我一直在谷歌上寻找一些关于如何在 Play Framework 2.1 中使用 Guice/Spring DI 的有用信息
我想做的是在一些 DAO 中注入多个服务,反之亦然。
只是需要对此进行一些澄清 - 在 play 2.1 中,您是否必须在 DI 的路由文件中使用 @ 注释?
我在这里看过这个指南 - https://github.com/playframework/Play20/blob/master/documentation/manual/javaGuide/main/inject/JavaInjection.md
并应用以下步骤在应用程序中创建一个全局类并在 Build.scala 中添加 GUICE 依赖项,但在调用注入对象时继续获取空指针异常。
有没有人能够使用 Guice 让 DI 在 Play 2.1 中工作?我在互联网上看到过一些例子,但它们似乎都在控制器中使用了 DI。
【问题讨论】:
-
不,那是错误的。像这样的循环依赖是一个糟糕的设计。服务可以拥有 DAO 并与其他服务协作,但 DAO 不应该拥有服务。
-
正确,这是有道理的。
-
为什么要同时使用 Play 和 Guice? Play 没有内置的 DI 形式吗?
-
我还没有 Guice 示例,但这里有一个注入控制器、DAO 等的 Spring 示例:github.com/jamesward/play2bars/tree/java-spring
标签: java dependency-injection playframework guice playframework-2.1