Spring Boot Shutdown-Haken
Wie kann ich mich registrieren/hinzufügen einer benutzerdefinierten shutdown-routine wird ausgelöst, wenn sich mein Spring-Boot-Anwendung heruntergefahren?
Szenario: ich bereitstellen von meinem Spring-Boot-Anwendung, um einen Jetty-servlet-container (D. H., kein embedded Jetty). Meine Anwendung verwendet für Logback logging, und ich möchte das ändern der protokolliergrade während der Laufzeit mit Logback ist die JMX-MBean-Konfigurator. Die Dokumentation besagt, dass um Speicherverluste zu vermeiden, beim Herunterfahren eine bestimmte LoggerContext shutdown-Methode aufgerufen werden.
Was sind gute Möglichkeiten, zu hören auf Spring Boot shutdown-events?
Habe ich versucht:
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext cac = SpringApplication.run(Example.class, args);
cac.addApplicationListener(new ApplicationListener<ContextClosedEvent>() {
@Override
public void onApplicationEvent(ContextClosedEvent event) {
logger.info("Do something");
}
});
}
aber diese registrierten listener nicht aufgerufen, wenn die Anwendung heruntergefahren.
InformationsquelleAutor der Frage Abdull | 2014-10-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-application-exit
InformationsquelleAutor der Antwort cfrick
Ist der listener registriert ist, zu spät ist (diese Zeile wird nie erreicht werden, bis der Rahmen hat bereits geschlossen). Es sollte ausreichen, um es ein
@Bean
.InformationsquelleAutor der Antwort Dave Syer
}
InformationsquelleAutor der Antwort harsh.tibrewal