我正在寻找一个拦截器或触发器来知道,所有上下文Bean均已销毁,而applicationcontext实例也将自行销毁。因此,我可以在应用程序生命周期结束时执行一个过程。
存在此事件类型ContextClosedEvent,它与我想要执行的操作很接近,但是它引发事件after破坏bean。我觉得它与applicationcontext的close()方法一起提供。因此它不符合我的需求
有什么想法吗?
问候
Ali
您可以使用抽象应用程序上下文类的registerShutDownHook()方法。有关更多详细信息,请查看this.
UPDATE
然后,您应该尝试在方法顶部使用@PreDestroy注释,该方法要在spring上下文即将销毁时最终运行某些内容。
希望这对您有所帮助。干杯。
创建一个实现SmartLifecycle的bean,并且getPhase返回Integer.MAX_VALUE。它的stop()方法将在其他任何stop或destroy方法之前执行。您可以在那里清理活豆中的所有资源。