我正在将(Scala)Play 2.3应用迁移到2.4。以前我有一个用于构建我的Controller
对象的家庭旋转机制,并使用Global.getControllerInstance
将它们提供给Play。这在2.4中已不再可用。有没有一种简单的方法来达到同样的效果?我宁愿不立即切换到使用Guice。
答案 0 :(得分:1)
一种选择是使用Guice模块外观来包装自定义控制器生成器。您只需要编写一个Guice类,Play将使用它来注入您自定义生成的实例,而无需任何其他更改。
这是Java中的一个例子。 (对不起,我没有scala示例方便)。
package com.example;
class ControllerProviderModule extends AbstractModule {
@Provides
MyController1 providesMyController1() {
// Create MyController1 and return it.
}
@Provides
MyController2 providesMyController2() {
// Create MyController2 and return it.
}
@Override
protected void configure() {
// Alternatively, use other approaches to bind controller classes to your custom generated instances
}
}
将模块添加到Play。
play.modules.enabled += "com.example.ControllerProviderModule"