在关闭ApplicationContext之前立即触发的Spring shutdown事件?

问题描述 投票:4回答:2

我正在寻找一个拦截器或触发器来知道,所有上下文Bean均已销毁,而applicationcontext实例也将自行销毁。因此,我可以在应用程序生命周期结束时执行一个过程。

存在此事件类型ContextClosedEvent,它与我想要执行的操作很接近,但是它引发事件after破坏bean。我觉得它与applicationcontext的close()方法一起提供。因此它不符合我的需求

有什么想法吗?

问候

Ali

java spring destroy applicationcontext
2个回答
3
投票

您可以使用抽象应用程序上下文类的registerShutDownHook()方法。有关更多详细信息,请查看this.

UPDATE

然后,您应该尝试在方法顶部使用@PreDestroy注释,该方法要在spring上下文即将销毁时最终运行某些内容。

希望这对您有所帮助。干杯。


0
投票

创建一个实现SmartLifecycle的bean,并且getPhase返回Integer.MAX_VALUE。它的stop()方法将在其他任何stop或destroy方法之前执行。您可以在那里清理活豆中的所有资源。

© www.soinside.com 2019 - 2024. All rights reserved.