一、准备工作
1.1 准备一个项目
随便创建一个Spring Boot项目,这里使用的是截止到2020年5月 最新的版本:2.2.7.RELEASE。
1.2 创建一个bean
我们创建一个Bean ,有一个销毁的方法:
@Component
public 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=true
management.endpoints.web.exposure.include=*
这里暴露了所有的,也可以指定暴露shutdown:
management.endpoint.shutdown.enabled=true
management.endpoints.web.exposure.include=shutdown
二、SpringBoot的n中停机操作
2.1 Run As – Java Application运行 – Console Termiante关闭