一、前言
对于一个java后端开发来说,在开发中,每次修改代码就得将项目重新重启,对于一些大型应用来说,重启过程需要花费大量的时间成本,这个过程比较难受,因此有时开发我们进行热部署。对于热部署他只加载重启(Restart)部分:自定义开发代码,包括类、页面、配置文件等,加载位置restart类加载器。不加载重载(ReLoad):jar包,加载位置base类加载器。
二、热部署的设置方式
在springboot中主要有两种热部署方式:第一种是手动启动热部署、第二种是自动启动热部署,下面来讲一下两种的具体步骤。
1. 手动启动热部署
1.1 先在pom.xml中添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
1.2 修改对应的代码后,点击Bulid Project手动启动热部署
2. 自动启动热部署
2.1 先在pom.xml中添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
2.2 选择File-Settings-Compiler-Build Project automatically
2.3 快捷键ctrl + shift + alt + / ,选择Registry,勾上 Compiler autoMake allow when app running
三、设置热部署的作用范围
在使用热部署的时候,有时我们在修改一些静态页面或者一些配置文件时,不想热部署在这些文件上作用,这时候我们可以在application.yal文件中进行配置。
spring:
devtools:
restart:
# 设置不参与热部署的文件或文件夹
exclude: static/**,public/**,config/application.yml
四、关闭热部署配置
关闭热部署,可以在yml文件中将enable设置成false
spring:
devtools:
restart:
# 设置不参与热部署的文件或文件夹
exclude: static/**,public/**,config/application.yml
enabled: false
对于有许多配置文件作用时我们想准确的管理热部署,比较好的一种方法是在系统上设置System.setProperty(“spring.devtools.restart.enabled”,“false”);
@SpringBootApplication
public class SSMPApplication {
public static void main(String[] args) {
//关闭热部署
System.setProperty("spring.devtools.restart.enabled","false");
SpringApplication.run(SSMPApplication.class);
}
}