[Springboot] 23. SpringApplication #4 Application Exit & Admin Features
2022. 10. 14. 10:27ㆍJAVA/Spring
1. Application Exit
각각의 SpringApplication은 ApplicationContext가 정상적으로 종료하기 위해서 JVM에 shutdown hook을 등록합니다. 모든 표준 스프링 라이프싸이클 콜백(DisposableBean 인터페이스 또는 @PreDestory 애노테이션)은 사용할 수 있습니다.
게다가 만약 SpringApplication.exit() 메서드가 호출될때 특정한 종료 코드를 반환하고 싶은 경우에 빈(bean)들은 "org.springframework.boot.ExitCodeGenerator" 인터페이스를 구현할 수 있습니다. 이 종료 코드는 다음과 같이 상태코드로써 반환되어 System.exit() 메서드에 전달될 수 있습니다.
@SpringBootApplication
public class ExitCodeApplication {
@Bean
public ExitCodeGenerator exitCodeGenerator() {
return () -> 42;
}
public static void main(String[] args) {
System.exit(SpringApplication.exit(SpringApplication.run(ExitCodeApplication.class, args)));
}
}
또한 ExitCodeGenerator 인터페이스는 예외들에 의해서 구현될 수 있습니다. 예외가 발생했을때 스프링 부트는 getExitCode() 메서드에 의해서 제공되는 종료 코드를 반환합니다.
2. Admin Features
"spring.application.admin.enabled" 속성을 명세함으로써 애플리케이션에 대한 관리 관련 기능을 활성화시킬 수 있습니다. MBeanServer 플랫폼에 SpringApplicationAdminMXBean을 노출시킵니다. Spring Boot Application을 원격으로 관리하기 위해서 이 기능을 사용할 수 있습니다. 이 기능은 또한 서비스 래퍼 구현에 대해서도 유용합니다.
References
https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-spring-application.html#boot-features-application-exit
'JAVA > Spring' 카테고리의 다른 글
[Springboot] 24. Externalized Configuration #2 @ConfigurationProperties (0) | 2022.10.28 |
---|---|
[Springboot] 24. Externalized Configuration (0) | 2022.10.14 |
[Springboot] 23. SpringApplication #3 Web Environment (0) | 2022.10.13 |
[Springboot] 23. SpringApplication #2 Application Events and Listeners (0) | 2022.10.13 |
[Springboot] 23. SpringApplication #1 Banner, Customizing (0) | 2022.10.12 |