이 코드를 작동하지 않는 것은 응용 프로그램/폴더에 있습니다 : 응용 프로그램의 conf에서플레이 자바 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 주석을 필요로하지 않습니다
그래서 (또한 dev에 환경에) 작동 구현은 다음과 같을 수 있을까? application.conf와 GuiceConfiguration은 나에게 도움이된다. – Kris
@Inject로 주석 처리 된 생성자가 없다면, guice는 매개 변수없이 하나를 취하게되므로 stop hook은 등록되지 않습니다. 게다가, '컨트롤러에 인젝션 콜'이란 무엇을 의미합니까? – rethab