1、关于热部署
重启(ReStart):自定义开发代码,包含类、页面、配置文件等,加载位置 restart 类加载器。
重载(ReLoad):jar 包,加载位置 base 类加载器。
热部署指的是重启。
2、启动热部署
2.1、手工启动
导入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
改完代码之后,Build —> Build Project
或 Ctrl + F9
重新构建项目。
2.2、自动启动
导入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
IDEA Settings:Ctrl + Alt + S
—> Build,Execution,Deployment
—> Compiler
—> 勾选 Build project automatically(勾选)
项目运行时允许自动构建:Ctrl + Alt + Shift + /
—> Registry...
—> compiler.automake.allow.when.app.runing(勾选)
激活方式:IDEA 界面失去焦点五秒后启动热部署。
2.3、范围配置
默认不触发重启的目录列表:
- /META-INF/maven
- /META-INF/resources
- /resources
- /static
- /public
- /templates
自定义不触发重启的排除项:
spring:
devtools:
restart:
exclude: public/**,static/**,application.yml, ...
...
3、关闭热部署
方式一:可能被其它配置文件开启。
spring:
devtools:
restart:
enabled: false
方式二:项目启动时设置,优先级比配置文件方式高。
@SpringBootApplication
public class MySpringBootApplication {
public static void main(String[] args) {
System.setProperty("spring.devtools.restart.exclude", "false");
SpringApplication.run(MySpringBootApplication .class, args);
}
}