ApplicationStartクラスでコンストラクタインジェクションを使用し、それを熱心にバインドするApplicationModuleを用意する必要があります。あなたのapplication.confで
:
あなたAppModuleクラスで
play.modules.enabled += "yourPath.AppModule"
:あなたのApplicationStartクラスで
public class AppModule extends AbstractModule {
@Override
protected void configure() {
Logger.info("Binding application start");
bind(ApplicationStart.class).asEagerSingleton();
Logger.info("Binding application stop");
bind(ApplicationStop.class).asEagerSingleton();
}
}
:あなたがそれを必要とする場合には
@Singleton
public class ApplicationStart {
@Inject
public ApplicationStart(Environment environment, YourInjectedService yourInjectedService) {
Logger.info("Application has started");
if (environment.isTest()) {
// your code
}
else if(
// your code
}
// you can use yourInjectedService here
}
}
。 ApplicationStop:
@Singleton
public class ApplicationStop {
@Inject
public ApplicationStop(ApplicationLifecycle lifecycle) {
lifecycle.addStopHook(() -> {
Logger.info("Application shutdown...");
return F.Promise.pure(null);
});
}
}
Play 2.4を意味しますか? – Kris
ソースコードがありますか? – Kris