Sie müssen Konstruktorinjektion in Ihrer ApplicationStart-Klasse verwenden und ein ApplicationModule bereitstellen, um es eifrig zu binden.
In Ihrem application.conf:
play.modules.enabled += "yourPath.AppModule"
In Ihrer AppModule Klasse:
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();
}
}
In Ihrer ApplicationStart Klasse:
@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
}
}
Falls Sie sie brauchen; ApplicationStop:
@Singleton
public class ApplicationStop {
@Inject
public ApplicationStop(ApplicationLifecycle lifecycle) {
lifecycle.addStopHook(() -> {
Logger.info("Application shutdown...");
return F.Promise.pure(null);
});
}
}
Meinst du Play 2.4? – Kris
Haben Sie Quellcode? – Kris