springboot 如何在退出應用時執行的操作
阿新 • • 發佈:2018-12-15
每個SpringApplication都會向JVM註冊一個關閉鉤子(hook),以確保ApplicationContext在退出時正常關閉。 可以使用所有標準的Spring生命週期回撥(例如DisposableBean介面或@PreDestroy注解)。
此外,如果bean希望在呼叫SpringApplication.exit()時返回特定的退出程式碼,則bean可以實現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()方法提供的退出程式碼。