【发布时间】:2015-08-25 18:26:28
【问题描述】:
这不是阻塞问题,但我想了解 Play 如何更好地处理控制器注入。
在Play document about Routing in 2.4,据说:
Play 支持生成两种类型的路由器,一种是依赖注入路由器,另一种是静态路由器。默认是静态路由器,但如果您使用 Play 种子激活器模板创建了一个新的 Play 应用程序,您的项目将在 build.sbt 中包含以下配置,告诉它使用注入的路由器:
routesGenerator := InjectedRoutesGenerator
Play 文档中的代码示例假定您使用的是注入路由生成器。如果您不使用它,您可以轻松地调整静态路由生成器的代码示例,方法是在路由的控制器调用部分前加上 @ 符号,或者将每个控制器声明为对象而不是类。
所以,据我了解,在build.sbt 中使用routesGenerator := InjectedRoutesGenerator,如果我在控制器调用中使用@ 前缀,则与将控制器设置为单例object 相同。这与我一直将我的控制器声明为 class 并具有一些注入(使用 @Inject)的事实背道而驰,并且我在所有控制器调用前加上 @,这样 IntelliJ 就不会报告错误。
那么,@ 真正对我的控制器调用做了什么?
【问题讨论】:
标签: scala intellij-idea dependency-injection playframework-2.4