Spring是否有关闭进程来放置清理代码?

当我的春季网络应用程序关闭时,是否有一个事件我可以以某种方式连线,我可以执行一些清理代码来清空一些池等。

您可以使用以下内容

  1. 灭法 正如@ amir75推荐的那样

  2. @PreDestroy注释

  3. 实现DisposableBean并覆盖destroy方法。

关于这些的所有deatails都可以在Disposable Callbacks中找到。

Spring bean有一个’destroy-method’属性,当你’关闭’你的上下文时会调用它。

 

要关闭它,你可以调用close()方法:

http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/support/AbstractApplicationContext.html#close%28%29

(或者只是在适当的时候关闭容器)

希望有所帮助..

基于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(); }