È necessario utilizzare l'iniezione del costruttore nella classe ApplicationStart e fornire un ApplicationModule per collegarlo con entusiasmo.
Nel vostro application.conf:
play.modules.enabled += "yourPath.AppModule"
Nel vostro AppModule Classe:
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();
}
}
Nella classe ApplicationStart:
@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
}
}
In caso di necessità; ApplicationStop:
@Singleton
public class ApplicationStop {
@Inject
public ApplicationStop(ApplicationLifecycle lifecycle) {
lifecycle.addStopHook(() -> {
Logger.info("Application shutdown...");
return F.Promise.pure(null);
});
}
}
Vuoi dire Play 2.4? – Kris
Hai qualche codice sorgente? – Kris