目录
1、问题阐述
2、实现方式
3、开始配置
3.1在pom.xml中添加依赖
3.2devtools配置
3.3修改IDEA配置
3.4测试一下
1、问题阐述
在实际项目开发过程中,每次修改代码就得将项目重启,重新部署,对于一些大型应用来说,重启时间需要花费大量的时间成本。对于一个后端开发者来说,重启过程确实很难受啊。在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。下面我们就看看对于简单的类修改的热部署怎么实现。
2、实现方式
Springboot中常见的热部署方式有3种:
-
1.使用springloaded配置pom.xml文件,使用mvn spring-boot:run启动
-
2.使用springloaded本地加载启动,配置jvm参数
- 3.使用devtools工具包,操作简单,但是每次需要重新部署
3、开始配置
3.1在pom.xml中添加依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--devtools热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
3.2devtools配置
在application.yml中配置一下devtools
spring:
devtools:
restart:
enabled: true #设置开启热部署
additional-paths: src/main/java #重启目录
exclude: WEB-INF/**
freemarker:
cache: false #页面不加载缓存,修改即时生效
3.3修改IDEA配置
- (1)File-Settings-Compiler-Build Project automatically
- (2)ctrl + shift + alt + / ,选择Registry,勾上 Compiler autoMake allow when app running
- 若(2)没有找到,则在setting->Advanced Settings中寻找
3.4测试一下
- 修改类–>保存:应用会重启
- 修改配置文件–>保存:应用会重启
- 修改页面–>保存:应用不会重启,但会重新加载,页面会刷新