boot-devtools官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html
1.在pom中引入热部署插件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
2.在配置文件中配置:(也可以不设置)
# 热部署开关,false即不启用热部署
spring.devtools.restart.enabled: true
# 指定热部署的目录
#spring.devtools.restart.additional-paths: src/main/java
# 指定目录不更新
spring.devtools.restart.exclude:test
3..需要在 idea中配置 Settings -> Build,Excution ->,Deployment -> Compiler 看 Build project automatically (是否自动编译)是否勾选
4.注册:Ctrl + Shift + Alt + / 选择 Registry 然后勾选
最后看下控制台是否有日志打出 试下修改的代码有没有生效
注意事项:
1、生产环境devtools将被禁用,如java -jar方式或者自定义的类加载器等都会识别为生产环境
2、打包应用默认不会包含devtools,除非你禁用SpringBoot Maven插件的 excludeDevtools属性
3、Thymeleaf无需配置 spring.thymeleaf.cache:false,devtools默认会自动设置,参考完整属性
https://github.com/spring-projects/spring-boot/blob/v1.5.7.RELEASE/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/env/DevToolsPropertyDefaultsPostProcessor.java
4.devtools会在windows资源管理器占用java进程,在开发工具里面杀不掉,只能手动kill掉,不然重启会选成端口重复绑定报错