So habe ich eine Spring-App auf Tomcat ausgeführt. Bei der Initialisierung kann es manchmal zu Fehlern kommen (d. H. Dass ein JDNI-Wert nicht gefunden wird oder die App keine Verbindung zu einem Dienst herstellen kann). Wenn dies passiert, werfe ich eine Exception aus und fange sie in der @Configuration-Datei ab. Im Catch-Block versuche ich die App mit einem System.exit (-1) zu schließen. Aber es scheint nicht der richtige Weg zu sein. Ursache Intellij ist nicht fähig oder schaltet den Server aus, ich habe sogar gesehen, dass Ressourcen nicht freigegeben werden, bis der Server ausgeschaltet ist.Schließen Sie die Feder bei der Initialisierung
Ich habe auch versucht:
@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;
}
Sowohl System.exit (1); ODER SpringApplication.exit (applicationContext) scheint den gleichen Effekt zu haben. Irgendeine Idee von einem besseren Weg, um die Finalisierung der Anwendung zu erzwingen.
Übrigens ist es eine Spring-Boot-Anwendung.
Nur um zu klären, der Vorschlag, so etwas wie dieses: @Bean öffentliche IServerDataCache serverDataCache() throws InitializationError { neue ServerDataCache zurückzukehren (args); } – kewne
Ja, das habe ich gemeint –