所以我有一個運行在Tomcat上的Spring應用程序。在部署初始化時,我有時可能會遇到一些錯誤(即某些JDNI值未找到或應用程序無法連接到某些服務)。所以當發生這種情況時,我會拋出異常並將其捕獲到@Configuration文件中。在catch塊中,我嘗試用System.exit(-1)關閉應用程序。但它似乎並不是正確的做法。原因Intellij沒有能力或關閉服務器,我甚至看到資源不會被釋放,直到服務器關閉。關閉初始化彈簧
我也曾嘗試:
@Autowired
public ApplicationContext application context
@Bean
public IServerDataCache serverDataCache() {
try {
return new ServerDataCache(args);
} catch(InitializationError initializationError) {
log.error("Unable to load configuration for Server Data Cache. Closing application.");
System.exit(1); OR SpringApplication.exit(applicationContext)
}
return null;
}
兩個System.exit(1);或者SpringApplication.exit(applicationContext)似乎具有相同的效果。任何一種更好的方法來執行應用程序的最終確定。
順便說一句,它是一個彈簧引導應用程序。
只是爲了澄清,該建議是這樣的: @Bean 公共IServerDataCache serverDataCache()拋出InitializationError { 返回新ServerDataCache(參數); } – kewne
是的,這就是我的意思 –