我的应用程序中有一些Quartz作业,如果我的应用程序上下文被关闭,我需要立即终止。为此,我尝试实现ContextStoppedEvent。多次尝试后,我无法触发此事件。在调用此事件时,我需要一些帮助。
下面是我的代码。
@Component
public class StopContextListener implements ApplicationListener<ContextStoppedEvent> {
private static final Logger LOG = LoggerFactory.getLogger(StopContextListener.class.getName());
@Override
public void onApplicationEvent(ContextStoppedEvent arg0) {
LOG.info("Data base closed successfully");
}
}
更新:
@Component
public class StopContextListener implements ApplicationListener<ContextClosedEvent> {
private static final Logger LOG = LoggerFactory.getLogger(StopContextListener.class.getName());
@Override
public void onApplicationEvent(ContextClosedEvent arg0) {
LOG.info("Data base closed successfully");
}
}
最佳答案
鉴于您要求“如果关闭我的应用程序上下文,则立即终止”,我建议您听ContextClosedEvent
而不是ContextStoppedEvent
。 ContextStoppedEvent
不会作为关闭上下文的一部分发布。
关于java - Spring Boot ContextStoppedEvent没有被调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37186760/