一.你需要准备
- Spring Boot 2.1.5.RELEASE
- java 1.8+
- Maven 3.3+
- IDEA
二.开发人员工具介绍
Spring Boot包含一组额外的工具,可以使应用程序开发体验更加愉快。该spring-boot-devtools
模块可以包含在任何项目中,以提供额外的开发时间功能。要包含devtools支持,请将模块依赖项添加到您的构建中,如如以下Maven和Gradle列表所示:
Maven.
<dependencies>
<dependency>
<groupId> org.springframework.boot </ groupId>
<artifactId> spring-boot-devtools </ artifactId>
<optional> true </ optional>
</ dependency>
</ dependencies>
Gradle.
configurations {
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
}
dependencies {
developmentOnly("org.springframework.boot:spring-boot-devtools")
}
三.配置热插拔
下面我们Maven为例,来实现自动部署新代码的功能:
3.1开启idea自动make功能
使用快捷键CTRL + SHIFT + A --> 查找 --> 选中
接下来,我们需要重启IDEA;
3.2 填加maven依赖
<!--热插拔-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!--表示依赖不会传递-->
<optional>true</optional>
</dependency>
3.3 开启热部署
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
</configuration>
</plugin>
</plugins>
</build>
3.4关闭热部署
配置完热部署后,默认自动开启,如果需要关闭热部署,可以参考如下方式进行关闭:
3.4.1方式一
@SpringBootApplication
public class MilogeniusWebApplication {
public static void main(String[] args) {
//关闭热部署
System.setProperty("spring.devtools.restart.enabled","false");
SpringApplication.run(MilogeniusWebApplication.class, args);
}
}
3.4.2 方式二
在application.yml配置文件中增加如下配置:
spring:
# 服务模块
devtools:
restart:
# 热部署开关
enabled: false
四.测试
首先我们启动项目,在尝试修改某个类之后,发现项目自动重启;将热部署开关关闭之后,发现修改某个类,项目不会自动重启;
五.总结
在Spring Boot 2.1.5.RELEASE版本测试下,我发现不配置true也能实现自动部署新代码,大家可以尝试一下,不知道是不是最新版本已经优化了;
返回专栏目录 |
---|