springboot 热部署
作用:修改类等文件后,不用手动重启,应用自动加载修改的文件使其生效
实现原理:使用两个classloader,一个类加载器加载不会改变的类、第三方jar包;
另一个类加载器(restart classloader)加载会改变的文件,当文件修改后,丢弃原来的restart classloader,自动重启应用,创建新的restart classloader加载修改后的文件,由于修改文件数相对较少,应用重启较快
***************************
引入jar 包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>2.1.8.RELEASE</version>
</dependency>
说明:devtools可实现前端页面热部署、类文件热部署、属性文件热部署,
devtools会监听classpath下文件的修改,当发生变动时,会自动重新启动应用
***************************
示例
spring:
devtools:
restart:
enabled: true #开启热加载
thymeleaf:
cache: false #thymeleaf不使用缓存
***************************
idea配置
file ==> settings ==> compiler ==> build project automatically
ctrl + shift + alt + / ==> registry ==> compiler automake allow when app runnning