Spring是否有关闭进程来放置清理代码?
当我的春季网络应用程序关闭时,是否有一个事件我可以以某种方式连线,我可以执行一些清理代码来清空一些池等。
您可以使用以下内容
-
灭法
正如@ amir75推荐的那样 -
@PreDestroy注释
-
实现DisposableBean并覆盖destroy方法。
关于这些的所有deatails都可以在Disposable Callbacks中找到。
Spring bean有一个’destroy-method’属性,当你’关闭’你的上下文时会调用它。
要关闭它,你可以调用close()方法:
(或者只是在适当的时候关闭容器)
希望有所帮助..
基于JSR-250规范,在现代spring应用程序中使用的最佳实践是@PreDestroy
注释,因为使用此方法将使bean与Spring分离。
处理此问题的非Spring方法是编写一个实现ServletContextListener
的类,并在其contextDestroyed
方法中进行清理。 您将在web.xml中将您的类添加为上下文侦听器。
根据Spring Boot logback示例项目,您应关闭上下文以清理日志记录系统: https : //github.com/spring-projects/spring-boot/commit/10402a651f1ee51704b58985c7ef33619df2c110
例:
public static void main(String[] args) throws Exception { SpringApplication.run(SampleLogbackApplication.class, args).close(); }