最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
java虚拟机钩子关闭函数addShutdownHook操作代码
时间:2021-02-20 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下java虚拟机钩子关闭函数addShutdownHook操作代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
当jvm虚拟机被关闭的时候,可能我们需要做一些处理,比如对连接的关闭,或者对一些必要信息的存储等等操作,这里就可以借助于虚拟机提供的钩子函数,当jvm虚拟机关闭之前会去调用addShutdownHook注册的线程钩子。
这里做一个小实验,项目结构如下:
1.自定义的ApplicationContext的上下文
package cn.lijie; public class ApplicationContext { private static ApplicationContext application; private void init() { application = this; Runtime.getRuntime().addShutdownHook(new MyShutdownHook()); } public void close() { System.out.println("钩子函数关闭连接操作"); } public static ApplicationContext getApplication() { return application; } }
2.定义一个钩子线程MyShutdownHook
package cn.lijie; public class MyShutdownHook extends Thread { public void run() { System.out.println("钩子函数调用,准备关闭连接"); ApplicationContext.getApplication().close(); System.out.println("钩子函数调用,连接已经关闭"); } }
3.spring容器的启动main
package cn.lijie; public class ApplicationContext { private static ApplicationContext application; private void init() { application = this; Runtime.getRuntime().addShutdownHook(new MyShutdownHook()); } public void close() { System.out.println("钩子函数关闭连接操作"); } public static ApplicationContext getApplication() { return application; } }
4.application.xml
当执行main方法的时候创建spring容器,然后关闭,届时就会执行之前注册的钩子线程。
打印结果如下:
-
上一个: Java中args参数数组的用法说明代码
-
下一个: Java三种进制的数值常量操作代码
相关文章
- SpringBoot自定义bean绑定解析 10-24
- Javaweb工程运行报错HTTP Status 404解决教程 10-20
- JAVA获取jvm和操作系统相关信息方法 10-20
- BeanFactory和FactoryBean的区别讲解 10-20
- 微信小程序的宿主环境实现教程 10-10
- dispatchEvent解决重叠元素响应事件教程 10-10