1.devtools
spring
为开发者提供了一个名为spring-boot-devtools
的模块来使Spring Boot
应用支持热部署
,提高开发者的开发效率,无需手动重启Spring Boot应用
。
2.项目搭建
本文是采用IDEA
搭建的Spring Boot
应用,通过spring-boot-devtools
配置,可以支持修改java
文件会自动重启程序,一些资源无需触发重启,例如thymeleaf
模板文件就可以实时编辑。默认情况下,更改/META-INF/maven
,/META-INF/resources
,/resources
,/static
,/public
或/templates
下的资源不会触发重启,而是触发livereload
。devtools
模块包含一个嵌入的livereload
服务器,可以在资源变化时用来触发浏览器刷新。浏览器需要在livereload.com
下载安装扩展。 例如Chrome
浏览器在应用商店安装livereload
插件后,在要自动刷新的页面点击对应的图标,启动应用后更新页面内容或者css
等都会触发页面自动刷新。
3.livereload
livereload
通过引入的脚本livereload.js
在 livereload
服务和浏览器之间建立了一个 WebSocket
连接。每当监测到文件的变动,livereload
服务就会向浏览器发送一个信号,浏览器收到信号后就刷新页面,实现了实时刷新
的效果。每次启动时,需要点击对应的图标,如下图所示。
4. 在项目中的配置
1)pom.xml中的配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 如果没有该配置,devtools不会生效 -->
<fork>true</fork>
</configuration>
</plugin>
2)yml中的配置
devtools:
livereload:
enabled: true #是否支持livereload
port: 35729
restart:
enabled: true #是否支持热部署
5. IDEA
1)File-Settings-Compiler-Build project automatically
2)ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running
6.安装livereload插件
下载livereload插件,将其安装到chrome扩展程序中,并选中允许访问文件网址。
7.测试
1)修改类 应用会重启
2)修改配置文件 应用会重启
3)修改静态文件(html、css等),应用不会重启,但是会调用livereload,浏览器会自动刷新,显示最新的修改内容