Spring Boot and Exit Codes
Spring向JVM注册关闭钩子,以确保ApplicationContext在退出时正常关闭。除此之外,Spring还提供了ExitCodeGenerator接口。调用System.exit()时,此接口可以返回特定代码。
实现 Exit Codes
Spring boot 提供 ExitCodeGenerator和ExitCodeExceptionMapper 两个接口,实现自定义exit code .ExitCodeEvent 提供获取状态码
ExitCodeGenerator
实现ExitCodeGenerator接口,返回 exit code
使用SpringApplication.exit() 调用SpringApplication.run ,得到exit code
ExitCodeExceptionMapper
运行时异常时,返回exit code.实现CommandLineRunner,然后抛出数字格式异常
ExitCodeEvent
订阅一个监听器,接受exit code,当程序退出后,在ExitCodeEvent中读取 exit code
总结
程序退出后,根据exit code 定位问题是一种不错的方式。