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

Schreibe einen Kommentar