Обработка кода завершения Spring Boot Applications для веб-приложения
У меня есть веб-приложение Spring Boot, работающее в Docker.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Даже если я определю ExitCodeGenerator, я не могу переопределить код выхода
@Bean
public ExitCodeGenerator exitCodeGenerator() {
return () -> 0;
}
@Bean
public ApplicationListener applicationListener() {
return applicationEvent -> {
logger.info("*** Event {}", applicationEvent);
if (applicationEvent instanceof ExitCodeEvent) {
logger.info("---> ExitCode={}", ((ExitCodeEvent) applicationEvent).getExitCode());
}
};
}
Кажется, что закрытие приложения как-то обрабатывается по-другому. Основная причина изменения кода выхода - функциональность перезапуска докеров. Если я остановлю свое приложение, оно остановится с кодом завершения 142. Поведение по умолчанию для Java-приложений. Но если я сейчас перезапущу Docker или сервер Docker автоматически запустит приложение, потому что все контейнеры с кодом выхода> 0 запускаются.
Спасибо за ваши ответы.