需求:想要在程序退出的时候,能够进行一些文件的清理,能够进行一些资源的释放,一些运行时的数据的保存。还有一个需求是在退出的时候,需要将阻塞队列里边的数据,处理完再退出

说明:springboot 项目

关闭程序的时候,只能使用 kill  pid 的方式终止程序,不能使用 kill  -9  pid 的方式。因为 kill -9 的方式,会直接退出。这个这里不过多的赘述了。

   # # 解决方案

在 application 启动类里边添加如下的代码,其中application启动类就是我们创建springboot 项目的时候就会有的类。然后需要执行的代码放在先撤线程里边

// 定义关闭线程
Thread shutdownThread = new Thread() {public void run() {System.out.println("shutdownThread...");}
};
Runtime.getRuntime().addShutdownHook(shutdownThread);

~ ps

写在最后:其实我最想,在 kill  -9  pid 的时候,也能够触发钩子程序。 但是我目前还做不到,因为系统命令 kill -9  就是直接退出,钩子程序也不会执行了。 我见过的能够平滑退出的有 elasticsearch ,它在使用  kill -9 的时候,仍然能够执行一些内容。

java 钩子程序,在kill 的时候程序平滑退出相关推荐

  1. 《Java编码指南:编写安全可靠程序的75条建议》—— 指南20:使用安全管理器创建一个安全的沙盒...

    本节书摘来异步社区<Java编码指南:编写安全可靠程序的75条建议>一书中的第1章,第1.20节,作者:[美]Fred Long(弗雷德•朗), Dhruv Mohindra(德鲁•莫欣达 ...

  2. 《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 2.7 修复错误...

    本节书摘来异步社区<Java编码指南:编写安全可靠程序的75条建议(英文版)>一书中的第2章,第2.7节,作者:[美]Fred Long(弗雷德•朗),Dhruv Mohindra(德鲁• ...

  3. 利用Spring-Boot解析Excel、用Java分析Excel、告别手动输入用程序读取Excel

    利用Spring-Boot解析Excel.用Java分析Excel.告别手动输入用程序读取Excel 一.资源 java读取Excel文件 二.修改 (一)中的代码中的 import service. ...

  4. JAVA同时输入用户名和密码_用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注...

    用java模拟设计一个简单的"用户注册"程序.当用户输入用户名和密码时,单击"注 2020 - 9 - 26 TAG : 所有功能均已实现,如有不满意的地方我再修改imp ...

  5. IDEA下SpringBoot项目的引用类没问题却提示:java:找不到符号:类**位置:程序包

    场景 在IDEA下正在调试运行的SpringBoot项目,然后添加了使用代码生成工具生成的domain.Controller.service.serviceImpl.Mapper层的文件后,再次重新调 ...

  6. 如何复制java卡,使用java做一个简单的集卡程序

    使用java做一个简单的集卡程序 本次设想的是要集齐4张卡,每张卡的概率都是25%,如果每个用户集齐需要多少次才能集合完毕 public class Test { public static void ...

  7. Java黑皮书课后题第3章:3.2(游戏:将三个数相加)程序清单3-1中的程序产生2个整数并提示用户输入这两个整数的和。修改该程序使之能产生三个个位数整数,提示用户输入这三个整数的和

    3.2(游戏:将三个数相加)程序清单3-1中的程序产生2个整数并提示用户输入这两个整数的和.修改该程序使之能产生3个个位数整数,提示用户输入这3个整数的和 题目 题目概述 程序清单3-1(非本题代码) ...

  8. 怎样用java写一个简单的文件复制程序

    怎样用java写一个简单的文件复制程序 代码来源:https://jingyan.baidu.com/article/c35dbcb0d6f1398916fcbc07.html package Num ...

  9. java ibatis 获取执行的sql_小程序官宣+JAVA 三大框架基础面试题

    每天给你诚意满满的干货 虽然每天都会写代码,但编程语言里有太多知识点,许多知识长时间不用就会忘记,在我们要去参加面试或是其它一些场景下,需要做些题来查缺补漏.我在搜索过程中发现没有太好的刷题小程序,所 ...

  10. 调查:Java程序员最伤心,C++程序员最年老

    说起我们对编程世界现有的刻板印象,你一定听说过类似于没有人喜欢用Java编码或者使用C ++都是老人家,等等这样的话.为了分析这些刻板印象背后的真相,Trestle Technology的数据工程师写 ...

最新文章

  1. TabLayout的指示器长度 的问题
  2. Response 和 Request
  3. Visual Studio 15.4发布,新增多平台支持
  4. 中国拉丝蛋白行业未来发展趋势与盈利前景研究报告2022年
  5. Visual Studio 2019 首个预览版本抢先看,有啥新功能?
  6. 绘制矩形php,PHP_php绘制一个矩形的方法,本文实例讲述了php绘制一个矩 - phpStudy...
  7. 年终总结系列6:借与贷,科普LTV指标
  8. CSS揭秘(四)视觉效果
  9. IE9对CSS3的支持情况概述
  10. 城市轨道交通运营票务管理论文_城市轨道交通运营管理浅析
  11. d3.js d3.scale.ordinal() --详解 rangeBands
  12. 【硬件工程师】芯片手册阅读-电阻式触摸屏控制芯片
  13. CSS规范--CSS属性书写顺序和CSS初始化
  14. 小程序开发框架_mpvue(六)卡通照片的实现思路
  15. 宏的本质以及宏(包括函数式宏) 没有返回值概念
  16. 爬虫速成(二):数据获取
  17. 【Simulink】数字控制振荡器 NCO ( N umerically CONtrolled Oscillator )
  18. 【FME EXCEL】FME玩转EXCEL小记——不定期更新
  19. 了解C语言中的pipe()系统调用
  20. v-bind绑定无效 - Vue

热门文章

  1. 天勤数据结构代码——双链表
  2. 《近匠》专访机智云 CTO 刘琰——从 0 到 1 开启智能化硬件开发
  3. 德标螺纹规格对照表_德标、欧标、国际、国标对照表
  4. 利用FGSM实现对抗样本攻击
  5. Tomcat免安装版+Eclipse配置
  6. Eclipse优化设置技巧
  7. Python数据分析-TMDb 5000 Movie Database电影数据分析
  8. 从计算机视觉算法实训走向落地尝试
  9. php 根据ip判断是否中国,PHP判断IP是中国IP还是外国IP
  10. Excel批量打开URL