Этот код находится в приложении/папке:Play Java 2,5 Guice жадная загрузка и остановка крючок не работает
public class GuiceConfiguration extends AbstractModule {
@Override
protected void configure() {
bind(KafkaConnection.class).asEagerSingleton();
}
}
@Singleton
public class KafkaConnection {
public KafkaConnection(){
try {
ServiceUtils.startKafka();
} catch (IOException e) {
PlayLoggerUtils.logError("[Global]", this.getClass(), e);
}
}
public KafkaConnection(ApplicationLifecycle lifecycle) {
lifecycle.addStopHook(() -> {
PlayLoggerUtils.logDebug("Kafka shutting down", this.getClass());
ServiceUtils.shutDownKafka();
return CompletableFuture.completedFuture(null);
});
}
}
В заявке конф
play.module.enabled += "GuiceConfiguration"
Класс инициализируется только если я позвоню вводить в контроллер. Это не загрузка при запуске приложения. И стоп-крючок также не выполняется (пробовали с помощью ctrl + d и просто убивали без принуждения в режиме производства).
я не уверен: Есть ли Guice не нужен @Inject аннотации в конструкторе? Application.conf и GuiceConfiguration выглядит хорошо для меня. – Kris
Если конструктор не аннотируется с помощью @Inject, guice примет значение без параметров, поэтому ваш стоп-крючок не зарегистрирован. Кроме того, что вы подразумеваете под «вызовом инъекции в контроллер»? – rethab