什么是Spring Boot Devtools
Spring Boot DevTools 是 Spring Boot 提供的一个开发工具,它旨在提高开发效率。这是springboot中提供的热部署功能,重新编译代码,程序自动帮你部署,无需重新启动程序。
JReble是一款热部署插件,但是他是收费的。如果没有特别的必要,建议使用spring boot devtools。
Idea使用 Spring Boot Devtools
1.引入依赖
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
2.项目配置
spring:
devtools:
restart:
# 开启热部署
enabled: true
# 这个路径下面的类,重新编译会触发热部署功能
additional-paths: src/main/java
3.测试使用
3.1.未编译之前
@RestController
public class DemoController {
@GetMapping("/")
public String test() {
return "hello world!";
}
}
3.2.改动代码,重新编译之后
使用Spring Boot Devtools进行远程部署
使用spring boot devtools进行远程部署的目的在于本地代码调试之后,远程对应能看到效果,而无需将改动之后的代码,重新打包在部署,这样节省了开发人员的大量时间。
需要注意的是,本地改动的代码没有打包到服务器中的jar中。
1.引入依赖项
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<mainClass>com.xxx.XxxApplicatioon</mainClass>
<!-- 将devtools打包到项目中 -->
<excludeDevtools>false</excludeDevtools>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2.上传jar到服务器上,并运行代码。
3.Idea配置本地和远程的部署
进入 Run --> 选择 + 号 --> 选择 Application