SpringBoot 优雅停止服务的几种方法

本文详细介绍了SpringBoot应用优雅停止的多种方法,包括利用actuator、kill信号、ApplicationContext.close()、SpringApplication.exit()等,分析了不同方式下preDestroy方法的执行情况,适合生产环境的优雅关闭策略。
摘要由CSDN通过智能技术生成

一、准备工作

1.1 准备一个项目

       随便创建一个Spring Boot项目,这里使用的是截止到2020年5月 最新的版本:2.2.7.RELEASE。

1.2 创建一个bean

       我们创建一个Bean ,有一个销毁的方法:

@Componentpublic class TerminateBean {
  
    @PreDestroy    public void preDestroy() {
          System.out.println("TerminalBean is destroyed");    }
}

       在接下来的测试中,主要是看这个preDestroy会不会被执行。

1.3 添加actuator的功能

       SpringBoot 提供的actuator的功能,它可以执行shutdown, health, info等,默认情况下,actuator的shutdown是disable的,我们需要打开它。

       利用actuator也是停止服务的方式,在下面会使用到,这里先把依赖添加进来。

引入acturator的maven依赖:

  <dependency>          <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-actuator</artifactId>      </dependency>

打开shutdown节点:

       修改applicatoin.properties文件:

management.endpoint.shutdown.enabled=truemanagement.endpoints.web.exposure.include=*

       这里暴露了所有的,也可以指定暴露shutdown:

management.endpoint.shutdown.enabled=truemanagement.endpoints.web.exposure.include=shutdown

二、SpringBoot的n中停机操作

2.1 Run As – Java Application运行 – Console Termiante关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值