Обработка кода завершения 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 запускаются.

Спасибо за ваши ответы.

0 ответов

Другие вопросы по тегам