Bạn cần phải sử dụng phép xây dựng trong lớp ApplicationStart của bạn và cung cấp một ApplicationModule để ràng buộc nó háo hức.
Trong application.conf của bạn:
play.modules.enabled += "yourPath.AppModule"
Trong AppModule Lớp của bạn:
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();
}
}
Trong lớp ApplicationStart của bạn:
@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
}
}
Trong trường hợp bạn cần đến nó; ApplicationStop:
@Singleton
public class ApplicationStop {
@Inject
public ApplicationStop(ApplicationLifecycle lifecycle) {
lifecycle.addStopHook(() -> {
Logger.info("Application shutdown...");
return F.Promise.pure(null);
});
}
}
Bạn có nghĩa là Play 2.4? – Kris
Bạn có một số mã nguồn không? – Kris