我正在使用游戏!框架1.2.5我的一个应用程序之一。最初,我通过创建类的新实例或使用工厂来解决依赖关系。但是我的应用程序正在增长,以这种方式管理依赖项变得越来越困难。我将与Google Guice
一起进行依赖注入看起来,对于每个控制器,我都必须写
requestStaticInjection(MyController.class);
在控制器中注入服务
@Inject
static MyService mySerivce;
这很令人沮丧,我不喜欢控制器具有静态方法,并且只能访问静态变量。我想将依赖项传递给控制器的构造函数,而我不想声明静态字段。
为什么播放控制器的方法是静态的?这是某种限制吗?还有其他好方法可以将课程注入游戏!控制器
旧问题,但是我遇到了同样的问题,我在这里找到了答案http://typesafe.com/blog/announcing-play-play-framework-framework-21-the-high-velocit,它不是与您使用的...
相同的播放版本播放2.1现在支持一种新的路由语法,该语法启用了调用注入的控制器而不是静态方法。只需在路由文件中以"@"符号
将控制器方法前缀
GET / @controllers.Application.index()
在您的conf/utaes
还有其他好方法可以将课程注入游戏!控制器
否。您不应在控制器中创建服务 - 使其成为不扩展控制器的常规类。然后从您的控制器致电服务类。将您的控制器代码保持在最低限度 - 那里有很多字节码魔术,因此请简单地保持控制器代码(查找对象,渲染结果,此类内容)