一、准备工作
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 优雅停止服务的几种方法 - 第309篇