每个都SpringApplication向JVM注册一个关闭钩子,以确保ApplicationContext退出时正常关闭。可以使用所有标准的Spring生命周期回调(例如DisposableBean接口或@PreDestroy批注)。
另外,org.springframework.boot.ExitCodeGenerator如果bean希望在SpringApplication.exit()调用时返回特定的退出代码,则可以实现该接口。然后可以将此退出代码传递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()方法提供的退出代码。
