在Spring Boot 中提供了spring-boot-devtools开发工具,实现了SpringBoot的热部署,热部署就是在项目正在运行的时候修改代码,却不需要重新启动项目,大大提高了开发效率。
热部署原理
大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动 效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的 Class 文件,这个 文件里记录着和代码等对应的各种信息,然后 Class 文件将被虚拟机的 ClassLoader 加载。
而热部署正是利用了这个特点,它监听到如果有 Class 文件改动了,就会创建一个新 的 ClaassLoader 进行加载该文件,经过一系列的过程,最终将结果呈现在我们眼前。
devtools 应用
1.添加依赖
首先在 pom.xml 中添加 devtools 依赖,代码如下:
<dependency>
<groupId>org. springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
2.application.yml 中配置一下 devtools
以下配置用于自定义配置热部署,也可不设置,代码如下:
spring :
devtools :
restart :
enabled: true#设置开启热部署
additional-paths: src/main/java #重启目录
exclude: wEB一工NF/**#指定目录不更新
freemarker :
cache: false#页面不加载缓存,修改即时生效
IDEA 中配置
当我们修改了类文件后,idea 不会自动编译,得修改 idea 设置。
1)File-Settings-Compiler-Build Project automatically
2)ctrl + shift + alt + / ,选择 Registry,勾上 Compiler autoMake allow when app running, 如图