1. 程式人生 > >springboot 如何在退出應用時執行的操作

springboot 如何在退出應用時執行的操作

        每個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()方法提供的退出程式碼。