背景:如果不使用热部署形式开发,每次修改java代码将要重启服务,浪费时间,影响开发效率。下面写个文章对热部署开发总结一下。
进入正题===开启热部署开发步骤:
1、引入maven依赖
<!-- 热部署模块 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>
2、检查编译工具是否开启自动编译功能,IDEA默认没有开启,打开setting,找到compiler勾选自动编译
3、在application.properties/yml里禁用模板引擎缓存
#禁用模版引擎缓存
spring.thymeleaf.cache=false
4、配置好上面两步后,项目还是不能自动进行热部署或自动编译,原因maven未对项目进行编译到target相应的目录中。则进行最后一个操作
ctrl+shift+alt+/打开,进入registry,勾选此选项
5、如果想要对指定目录进行热部署,提高效率,则
#添加那个目录的文件需要restart
spring.devtools.restart.additional-paths=src/main/java
#排除那个目录的文件不需要restart
spring.devtools.restart.exclude=static/**,public/**
此外说明:
默认情况下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates,/public这些文件夹下的文件修改不会使应用重启,但是会重新加载(devtools内嵌了一个LiveReload Server,当资源发生改变时,浏览器刷新)