Runtime.getRuntime().addShutdownHook(Thread hook)的使用
来源:互联网 发布:安锐特监控软件下载 编辑:程序博客网 时间:2024/06/05 18:31
需求:最近做了个后台运行的jar包应用,没有采用web容器,采用java -jar xxxxx的方式运行。数据库连接池采用c3p0,关闭应用后
发现数据库会话依然存在。
解决方案:采用Runtime.getRuntime().addShutdownHook(Thread hook)在应用关闭前关闭数据库连接,该方法适用于采用
System.exit(int)退出应用的方式。 因为jar包采用的是main方法启动(main方法是应用的入口和出口),因此直接将
Runtime.getRuntime().addShutdownHook(Thread hook)放在了main方法中。(Runtime 就是java.lang.Runtime).
因为我采用Guice管理数据源,所以下面通过Injector获取应用的DataSource。
代码:
import javax.sql.DataSource;import com.google.inject.Injector;import com.mchange.v2.c3p0.ComboPooledDataSource;public class ShutdownHookTest {private static Injector injector;static {// TODO initiate injectorSystem.out.println("injector has been initiated.");}public static void main(String[] args) {Runtime.getRuntime().addShutdownHook(new Thread(){@Overridepublic void run() {DataSource ds = injector.getInstance(DataSource.class);((ComboPooledDataSource) ds).close();System.out.println("Successfully closed the dataSource.");}});}}
0 0
- Runtime.getRuntime().addShutdownHook(Thread hook)的使用
- Runtime.getRuntime().addShutdownHook(Thread)
- Runtime.getRuntime().addShutdownHook(Thread)
- Runtime.getRuntime().addShutdownHook()的使用
- Runtime.getRuntime().addShutdownHook()的使用
- Runtime.getRuntime().addShutdownHook(thread)的作用
- Runtime.getRuntime().addShutdownHook使用
- Runtime.getRuntime().addShutdownHook(new Thread()
- Runtime.getRuntime().addShutdownHook(new Thread()
- Runtime.getRuntime().addShutdownHook(new Thread())
- Runtime.getRuntime().addShutdownHook()方法的用法
- Runtime.getRuntime().addShutdownHook
- RunTime.getRunTime().addShutdownHook用法
- RunTime.getRunTime().addShutdownHook用法
- Runtime.getRuntime().addShutdownHook(shutdownHook);
- Runtime.getRuntime().addShutdownHook
- RunTime.getRunTime().addShutdownHook用法
- Runtime.getRuntime().addShutdownHook(shutdownHook);
- myeclipse 项目中添加源码jar包 hibernate源码包 struts源码包 spring源码包如同
- STM32F030能不能跑UCOSII
- C# 如何给现有/新建PDF文档添加注释或标注
- Android中顶部Tab带滑动选项卡之二选一,仿淘宝宝贝收藏和店铺收藏
- freemarker的数字格式化
- Runtime.getRuntime().addShutdownHook(Thread hook)的使用
- 安卓设置AttributeSet
- 阿里巴巴常考面试题及汇总答案
- 使用百度搜索site语法来查看你网站的收录量
- js中location.search、split()HTML5中localStorage
- (EM算法)The EM Algorithm
- c#简单的就业调查表
- Git 操作记录整理
- 机试之坐标移动