一.springloader和devtools的区别
SpringLoader
与
DevTools
的区别:
SpringLoader
:
SpringLoader
在部署项目时使用的是热部署的方式,只对后端java的claass文件起作用。太麻烦,了解即可
DevTools
:
DevTools
在部署项目时使用的是重新部署的方式
二.pom配置
<!-- DevTools 的坐标 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
三.开启自动配置功能
3.1 开启自动配置功能
1.Intellij IEDA 使用ctrl+shift+alt+/ 快捷键搜索Registry,选择搜索出来的第一个
3.2 在controller等后端代码进行修改
1.修改前:
2.修改后:
3.可以看到后台日志进行了重新启动:
此时重新启动项目,重启idea,即可实现热部署,改动任意代码会立即生效,不用再每次重新启动项目
3.3 application配置文件
修改之后:服务自动进行了重启,进行了热部署
3.4 在templates下进行页面的修改
1.修改前
修改成:
页面重新访问:通过不停的刷新,还是没有变动
总结:
不被热部署的文件
1、/META-INF/maven, /META-INF/resources, /resources, /static, /public, or /templates
2、指定文件不进行热部署 spring.devtools.restart.exclude=static/**,public/**
3、手工触发重启 spring.devtools.restart.trigger-file=trigger.txt
改代码不重启,通过一个文本去控制
注意点:生产环境不要开启这个功能,如果用java -jar启动,springBoot是不会进行热部署的
3.5 解决热部署时可以访问静态文件
1.在配置文件中配置:
spring.devtools.restart.trigger-file=trigger.txt
2.在trigger.txt中配置
里面的值动态改变
version=4
3.修改前:
修改后:
修改trigger中version的版本:
可以看到访问网页:进行了热部署更新