【*】引入maven依赖
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 热部署:下面不配置不生效 -->
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
【*】 eclipse –> Project –> Build Automatically 要选中,不选中的话不起作用。
【*】修改application.properties
spring.devtools.restart.enabled: true
#设置重启的目录
spring.devtools.restart.additional-paths: src/main/java
#classpath目录下的WEB-INF文件夹内容修改不重启
spring.devtools.restart.exclude: WEB-INF/**
#关闭thymeleaf缓存
#spring.thymeleaf.cache=false
【*】解析
- devtools可以实现页面热部署,devtools会监听classpath下的文件变动,在保存时会立即重启tomcat,因为其采用的虚拟机机制,重启是很快的
- 修改java文件后也就支持热启动,这种方式是属于项目重启,速度比较快,会清空session中的值,如果有用户登陆的话,项目重启后需要重新登陆。
- 默认情况下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates,/public这些文件夹下的文件修改不会使应用重启,但是会重新加载,当资源发生改变时,浏览器会刷新
【*】测试
- 修改类–>保存:应用会重启
- 修改配置文件–>保存:应用会重启
- 修改页面–>保存:应用不会重启,但会重新加载,页面会刷新