spring-boot-devtools 实现热部署
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 配置文件
1
2
3
4
5
6
7
8
9
10
11
12
|
< 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 > < fork >true</ fork > <!-- 如果没有该配置,devtools不会生效 --> </ configuration > </ plugin > |
(2)yml 配置
1
2
3
4
5
6
|
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,浏览器会自动刷新,显示最新的修改内容。
转自 (https://www.cnblogs.com/TechSnail/p/7690829.html)