Play 2.4 中 Global.getControllerInstance 的等价物是什么?
What is an equivalent to Global.getControllerInstance in Play 2.4?
我正在将 (Scala) Play 2.3 应用程序迁移到 2.4。以前我有一个自制的机制来构建我的 Controller
对象,并使用 Global.getControllerInstance
将它们提供给 Play。这在 2.4 中不再可用。有没有一种简单的方法可以达到同样的效果?我宁愿不立即切换到使用 Guice。
一种选择是使用 Guice 模块外观来包装您的自定义控制器生成器。您只需编写一个 Guice class,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"
我正在将 (Scala) Play 2.3 应用程序迁移到 2.4。以前我有一个自制的机制来构建我的 Controller
对象,并使用 Global.getControllerInstance
将它们提供给 Play。这在 2.4 中不再可用。有没有一种简单的方法可以达到同样的效果?我宁愿不立即切换到使用 Guice。
一种选择是使用 Guice 模块外观来包装您的自定义控制器生成器。您只需编写一个 Guice class,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"