Musisz użyć konstruktora wtrysku w swojej klasie ApplicationStart i dostarczyć ApplicationModule do wiązania go z niecierpliwością.
W swojej application.conf:
play.modules.enabled += "yourPath.AppModule"
W swojej AppModule Klasa:
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();
}
}
w klasie 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
}
}
w przypadku trzeba go; ApplicationStop:
@Singleton
public class ApplicationStop {
@Inject
public ApplicationStop(ApplicationLifecycle lifecycle) {
lifecycle.addStopHook(() -> {
Logger.info("Application shutdown...");
return F.Promise.pure(null);
});
}
}
Masz na myśli Play 2.4? – Kris
Czy masz kod źródłowy? – Kris