我正在尝试将我的 GlobalSettings 迁移到 playframework 2.4,但我很难理解我应该做什么。
目前我的全局如下,我已经把 onRequest 移到了 RequestHandler 中:
public class Global extends GlobalSettings {
private BackgroundTasks backgroundTasks;
@Override
public void onStart(Application arg0) {
Logger.info("Starting background tasks");
backgroundTasks = new BackgroundTasks();
}
@Override
public void onStop(Application arg0) {
Logger.info("Stopping background tasks");
backgroundTasks.shutdown();
super.onStop(arg0);
Logger.info("Saving modules data");
for(Module m: controllers.Application.modules){
m.saveData();
}
}
}
最佳答案
我认为它应该遵循(没有包和导入)......
OnStartModule.java:
public class OnStartModule extends AbstractModule {
@Override
protected void configure() {
bind(BackgroundTasks.class).asEagerSingleton();
}
}
背景任务.java:
@Singleton
public class BackgroundTasks {
@Inject
public BackgroundTasks(ApplicationLifecycle lifecycle) {
lifecycle.addStopHook(() -> {
Logger.info("Stopping background tasks");
this.shutdown();
Logger.info("Saving modules data");
for(Module m: controllers.Application.modules){
m.saveData();
}
return F.Promise.pure(null);
});
}
}
应用程序配置文件:
play.modules.enabled += "OnStartModule"
关于java - 替换 GlobalSettings.onStart 和 onStop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30667942/