如何註冊/添加一個自定義關閉例程,當我的Spring Boot應用程序關閉時應該觸發該例程?Spring Boot關閉鉤子
場景:我將Spring Boot應用程序部署到Jetty servlet容器(即沒有嵌入式Jetty)。我的應用程序使用Logback進行日誌記錄,並且我想在運行時使用Logback的MBean JMX配置程序更改日誌記錄級別。 Its documentation states that to avoid memory leaks, on shutdown a specific LoggerContext shutdown method has to be called。
有什麼好的方法來收聽Spring Boot關機事件?
我曾嘗試:
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");
}
});
}
但是當應用程序關閉該註冊的監聽器不會被調用。
您正在註冊的偵聽器創建的上下文後,基本上使之無用。如果你想讓它參與進來,你需要將它註冊爲應用程序上下文中的bean,就像其他bean一樣。 – 2014-11-02 17:07:42
你是否設法解決了這個問題? – pvgoddijn 2016-05-18 15:25:24