2017-12-14 15 views
0

우리는 자체 셧다운 훅을 구현하고 있으며 스프링과 함께 제공되는 기본값을 비활성화하려고합니다. 그것은 스프링 - 클라우드를 사용하지 않는 스프링 어플리케이션에서 잘 작동했습니다.스프링 - 클라우드 컨텍스트 부트 스트랩은 기본 컨텍스트에서 비활성화 된 스프링 종료 훅을 무시합니다.

SpringApplication app = new SpringApplicationBuilder(NoaApp.class).build(); 
app.setRegisterShutdownHook(false); 
ConfigurableApplicationContext applicationContext = app.run(args); 
GracefulShutdownHook.register(applicationContext); 

SpringApplication는 BootstrapApplicationListener가 종료 훅을 등록 사실 기본값으로 설정 registerShutdownHook 플래그 새로운 컨텍스트를 초기화하는 원인이 이벤트를 발생합니다.

이 문제를 해결할 수있는 명확한 방법이 있습니까?

+0

아니요, 지금은 아닙니다. 당신은 당신의 훅에 등록하기 위해 부트 스트랩 컨텍스트를 어떻게 얻을 수 있습니까? 또는 setRegisterShutdownHook (false)를 호출하는 것이 좋습니다. – spencergibb

+0

스프링 - 클라우드가 만드는 컨텍스트에서 스프링 훅을 비활성화하면됩니다. 나는 메인 클래스에 내 자신의 자바 종료 후크를 등록합니다. – miklesw

+0

스프링 클라우드의 최신 버전에서 수정 된 것 같습니다. https://github.com/spring-cloud/spring-cloud-commons/commit/96ec2d32ea0467abab26b33776667cb7c37533d3 – miklesw

답변

0

우리는 스프링 클라우드 1.0.3을 사용 중이며 버전 1.1.0에서 수정되었습니다.