(转)SpringBoot之退出服务(exit)时调用自定义的销毁方法
2018-01-24 09:58
811 查看
我们在工作中有时候可能会遇到这样场景,需要在退出容器的时候执行某些操作。SpringBoot中有两种方法可以供我们来选择(其实就是spring中我们常用的方式。只是destory-method是在XML中配置的,SpringBoot是去配置化。所以这里就不提这种方式了),一种是实现DisposableBean接口,一种是使用@PreDestroy注解。OK,下面我写两个例子看一下:
@PreDestroy注解
我们可以在需要的类的方法上添加这个注解,同样可以满足我们的需求。
转自:http://blog.csdn.net/zknxx/article/details/52204036
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. */ @Component public 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. */ @Component public 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来启动运行的话,可能不会执行销毁的操作。转自:http://blog.csdn.net/zknxx/article/details/52204036
相关文章推荐
- SpringBoot之退出服务(exit)时调用自定义的销毁方法
- spring-boot 方法异步调用,自定义线程池配置使用
- spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法
- Spring Boot使用@Async实现异步调用:自定义线程池
- spring boot自定义404错误信息的方法示例
- 企业分布式微服务云SpringCloud SpringBoot mybatis (十九)Spring Boot 自定义配置文件
- Spring Boot + Dubbo 可运行的例子源码-实现服务注册和远程调用
- Spring Boot利用@Async如何实现异步调用:自定义线程池
- 记录问题:在springboot中servletlet调用service方法空指针异常问题
- Spring Boot下如何自定义Repository中的DAO方法
- spring(IOC) 对象创建时机、对象作用域scope、对象的初始化方法和销毁方法的调用、spring容器总结
- spring boot / cloud (八) 使用RestTemplate来构建远程调用服务
- 非spring-boot调用基于spring-cloud + zookeeper微服务 - 基础搭建
- IOS调用WCF提供的服务方法,但是方法的参数是WCF那边自定义的对象,这样有办法调用么,如果可以IOS应该怎么传参呢?请问有了解的么,
- spring boot http调用其他服务并解析
- spring cloud将spring boot服务注册到Eureka Server上的方法
- spring cloud feign实现远程调用服务传输文件的方法
- spring boot整合cxf发布webservice服务和cxf客户端调用
- 使用spring-boot-admin对spring-boot服务进行监控的实现方法
- Spring 下基于自定义注解拦截方法调用