1、实现ServletContextListener、ApplicationContextAware两个接口,在销毁方法里借助ApplicationContextAware注入的application对象使用
2、实现ApplicationListener,自己添加需要用到的依赖对象(参考https://www.dazhuanlan.com/2019/11/28/5ddf9ac1a4c77/)

public class MyListener implements ApplicationListener {
@Override
public void onApplicationEvent(ApplicationEvent event) {
if(event instanceof ContextClosedEvent) {
stopScheduler();
}
}
}

3、实现Lifecycle接口

4、第2、3都需要调用classPathXmlApplication.close()才会执行这些方法,因为是纯java的应用我不需要显式的去关闭容器,后面看到一种钩子的方法

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {

           public void run() {
stopScheduler();
}
}));

我通过实现beanPostProcessor接口的时候随意before还是after加入这个方法(判断是否是我注册的这个beanName,不然会注册n个钩子。。。。),这样在进程结束的时候就会执行这个线程方法里匿名调用自定义的方法,而且还能继续拿到bean(因为根本没有销毁beans)

最新文章

  1. 不注册Tomcat服务,运行Tomcat不弹出JAVA控制台窗口
  2. BOP 2016 复赛题目
  3. js异步加载的三种解决方案
  4. 使用mysqli_stmt类
  5. iOS - OC NSRect 位置和尺寸
  6. 11 Indexes
  7. 纯CSS制作二级导航
  8. win7常用键
  9. 用Spring Boot零配置快速创建web项目(1)
  10. 如何A掉未来程序改
  11. DLL 导出函数
  12. MAC 上传文件到github
  13. 数据库表反向生成(二) Django ORM inspectdb
  14. iOS下OpenCV开发配置的两个常见问题(sign和link)
  15. 阿里云CentOS安装PostgreSQL
  16. 清北学堂学习总结day2
  17. 如何将数据库中的数据导入到Solr中
  18. solr4.7配置(ik-analyzer)
  19. 转:VS2013快捷键大全
  20. spring data jpa @query的用法

热门文章

  1. Spring一套全通4—持久层整合
  2. vue3快速上手
  3. 2017final英文语句格式简单检查
  4. python中jsonpath模块,解析多层嵌套的json数据
  5. GO的安装以及GoLand破解
  6. Linux可执行文件格式-ELF结构详解
  7. [gym102978D]Do Use FFT
  8. [ccBB]Billboards
  9. idea反编译失败 /* compiled code */的解决方法
  10. 雪花算法对System.currentTimeMillis()优化真的有用么?