博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot之退出服务(exit)时调用自定义的销毁方法
阅读量:6244 次
发布时间:2019-06-22

本文共 1525 字,大约阅读时间需要 5 分钟。

我们在工作中有时候可能会遇到这样场景,需要在退出容器的时候执行某些操作。SpringBoot中有两种方法可以供我们来选择(其实就是spring中我们常用的方式。只是destory-method是在XML中配置的,SpringBoot是去配置化。所以这里就不提这种方式了),一种是实现DisposableBean接口,一种是使用@PreDestroy注解。OK,下面我写两个例子看一下:

DisposableBean接口

我们可以通过实现这个接口来在容器退出的时候执行某些操作。例子如下:
package com.zkn.learnspringboot.destory; import org.springframework.beans.factory.DisposableBean;import org.springframework.boot.ExitCodeGenerator;import org.springframework.stereotype.Component; /** * Created by zkn on 2016/8/14. */@Componentpublic class TestImplDisposableBean implements DisposableBean, ExitCodeGenerator {     @Override    public void destroy() throws Exception {         System.out.println("<<<<<<<<<<
<我被销毁了......................>
>>>>>>>>>>>>>>"); System.out.println("<<<<<<<<<<
<我被销毁了......................>
>>>>>>>>>>>>>>"); } @Override public int getExitCode() { return 5; }}

@PreDestroy注解

我们可以在需要的类的方法上添加这个注解,同样可以满足我们的需求。
package com.zkn.learnspringboot.destory; import org.springframework.stereotype.Component;import javax.annotation.PreDestroy; /** * Created by zkn on 2016/8/14. */@Componentpublic class TestAnnotationPreDestroy {     @PreDestroy    public void destory() {         System.out.println("我被销毁了、、、、、我是用的@PreDestory的方式、、、、、、");        System.out.println("我被销毁了、、、、、我是用的@PreDestory的方式、、、、、、");    }}

输出结果如下:

 

TIPS:

退出你可以通过Ide中的功能来退出。这里我启动的时候是在CMD中用jar启动的,启动命令如下:java -jar LearnSpringBoot-0.0.1-SNAPSHOT.jar,所以我在这里退出的时候是用的Ctrl+C来执行的退出操作。如果你用的mvn spring-boot:run来启动运行的话,可能不会执行销毁的操作。

 

 

转载于:https://www.cnblogs.com/wpcnblog/p/9242682.html

你可能感兴趣的文章
我的友情链接
查看>>
ElasticSearch 2 (32) - 信息聚合系列之范围限定
查看>>
VS2010远程调试C#程序
查看>>
windows查看端口占用
查看>>
Yii用ajax实现无刷新检索更新CListView数据
查看>>
App 卸载记录
查看>>
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
计算机网络与Internet应用
查看>>
oracle在线迁移同步数据,数据库报错
查看>>
linux性能剖析工具
查看>>
flutter中的异步
查看>>
计算机高手也不能编出俄罗斯方块——计算机达人成长之路(16)
查看>>
# 2017-2018-1 20155224 《信息安全系统设计基础》第七周学习总结
查看>>
scikit-learn预处理实例之一:使用FunctionTransformer选择列
查看>>
Oracle11G 卸载步骤
查看>>
Mars说光场(3)— 光场采集
查看>>
中小企业客户营收增长将成微博2016年主推动力
查看>>