23.9 Application Exit
每个SpringApplication在JVM中注册关闭钩用来确保退出时ApplicationContext优雅的关闭.Spring的所有标准生命周期回调(如DisposableBean接口或@PreDestroy注解)都可以使用.
此外,如果他们想在调用SpringApplication.exit()返回一个特定的退出码,实例可以考虑实现org.springframework.boot.ExitCodeGenerator接口.
这个退出代码随后传递给System.exit()以状态码的形式返回,如以下示例所示:
@SpringBootApplicationpublic class ExitCodeApplication {@Beanpublic ExitCodeGenerator exitCodeGenerator() {return () -> 42;}public static void main(String[] args) {System.exit(SpringApplication.exit(SpringApplication.run(ExitCodeApplication.class, args)));}}
此外,ExitCodeGenerator接口也可以由异常来实现.当遇到一个类似异常时,Spring Boot以实现的getExitCode()方法返回退出码.
