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