如何注册/添加一个自定义关闭例程,当我的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