我正在将(Scala)Play 2.3 应用程序迁移到 2.4。以前我有一个自制机制来构建我的Controller
对象,并使用Global.getControllerInstance
. 这在 2.4 中不再可用。有没有一种简单的方法可以达到同样的效果?我宁愿不立即切换到使用 Guice。
问问题
889 次
1 回答
1
一种选择是使用 Guice Module 外观来包装您的自定义控制器生成器。您只需要编写一个 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"
于 2015-07-20T19:22:21.917 回答