我有一个班级
@OnApplicationStart
public class OnStartManager extends Job{
private DataGridServiceManager dataGridServiceManager = null;
@Override
public void doJob() {
dataGridServiceManager = DataGridServiceManagerImpl.getInstance();
}
}
这是在应用程序启动时执行,但它也在我访问其他页面甚至同一页面时执行。但我想在应用程序启动期间只执行一次。我该怎么做才能实现这一目标。
答案 0 :(得分:4)
如果您在DEV模式下运行,Play有时会自动重启应用程序。这将导致@OnApplicationStart
作业重新运行。也许这就是你所经历的?
引自Jobs section of Play documentation:
在DEV模式下运行应用程序时,应用程序会等待 第一个HTTP请求启动。此外,当您处于DEV模式时, 应用程序有时会在需要时自动重启。
答案 1 :(得分:0)
我在index.html
加载之前处理一些信息并存储。我在@OnApplicationStart
文件中使用了bootstrap.java
标记。它没有汗水。