Spring在非web应用中优雅地关闭Spring IoC容器
2013-03-26 16:21
204 查看
在基于web的ApplicationContext实现中,已有相应的代码来处理关闭web应用时,如何恰当地关闭Spring IoC容器。
如果你正在一个非web应用的环境下使用Spring的IoC容器,例如在桌面富客户端环境下,你想让容器优雅的关闭,并调用singleton bean上的相应析构回调方法,你需要在JVM里注册一个“关闭钩子”(shutdown hook)。这一点非常容易做到,并且将会确保你的Spring IoC容器被恰当关闭,以及所有由单例持有的资源都会被释放。
为了注册“关闭钩子”,你只需要简单地调用在AbstractApplicationContext实现中的registerShutdownHook()方法即可。也就是:
如果你正在一个非web应用的环境下使用Spring的IoC容器,例如在桌面富客户端环境下,你想让容器优雅的关闭,并调用singleton bean上的相应析构回调方法,你需要在JVM里注册一个“关闭钩子”(shutdown hook)。这一点非常容易做到,并且将会确保你的Spring IoC容器被恰当关闭,以及所有由单例持有的资源都会被释放。
为了注册“关闭钩子”,你只需要简单地调用在AbstractApplicationContext实现中的registerShutdownHook()方法即可。也就是:
import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public final class Boot { public static void main(final String[] args) throws Exception { AbstractApplicationContext ctx = new ClassPathXmlApplicationContext(new String []{"beans.xml"}); // add a shutdown hook for the above context... ctx.registerShutdownHook(); // app runs here... // main method exits, hook is called prior to the app shutting down... } }
相关文章推荐
- Spring在非web应用中优雅地关闭Spring IoC容器
- Spring在非web应用中关闭IoC容器 (registerShutdownHook)
- Spring在非web应用中关闭IoC容器 (registerShutdownHook)
- Spring在非web应用中关闭IoC容器 (registerShutdownHook)
- Spring在非web应用中关闭IoC容器 (registerShutdownHook)
- Spring.NET在非Web中的应用,以及封装Spring容器。
- Spring.NET在非Web中的应用,以及封装Spring容器。
- Spring容器优雅的关闭
- springboot优雅的关闭应用
- 【Spring】初始化Spring IoC容器(非Web应用),并获取Bean
- 如何优雅的打包 Spring Boot 应用
- spring IOC容器实例化Bean的方式与RequestContextListener应用
- Spring整合ElasticJob 关闭Tomcat容器时内存泄漏
- 2、spring入门—Spring IOC容器
- Spring IOC容器的基本应用
- Spring Boot利用@Async异步调用:ThreadPoolTaskScheduler线程池的优雅关闭详解
- Unit01: Spring简介 、 Spring容器 、 Spring IOC
- Spring整理系列(03)——spring容器ApplicationContext初始化(spring应用上下文初始化)
- Spring的Bean生命周期内的callback方法和Spring容器启动关闭时的callback方法
- 本地Spring容器关闭的时机