java - 替换 GlobalSettings.onStart 和 onStop

标签 java playframework playframework-2.4

我正在尝试将我的 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/

相关文章:

Java Play 2.4 使用注入(inject)为类编写测试用例

java - 如何将 Java 中的 'question mark(?)' 类型泛型模拟为 C++?

java - 给定一个webelement,单击它会导致页面重新加载吗?

java - UDP 中的服务器-客户端

java - 使用 Java 11 玩 2.2.2

playframework - 在play框架中遵循service和dao层方法会减少play的主要功能吗?

java - MongoDB - 在内存中保存 DBCursor 时对数据库进行更改

java - 如何创建 Play!使用 Maven 的框架 Web 项目?

java - 在 .xml.scala 模板中将 Scala 字符串转换为 Xml

angularjs - 使用 Angular 播放 scala 模板收到有关 $index 使用的警告