23.9 Application Exit
每个SpringApplication
在JVM中注册关闭钩用来确保退出时ApplicationContext优雅的关闭.Spring的所有标准生命周期回调(如DisposableBean
接口或@PreDestroy
注解)都可以使用.
此外,如果他们想在调用SpringApplication.exit()
返回一个特定的退出码,实例可以考虑实现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
接口也可以由异常来实现.当遇到一个类似异常时,Spring Boot以实现的getExitCode()
方法返回退出码.