這裡是 原文連結
-
devtools
spring為開發者提供了一個名為spring-boot-devtools的子產品來使Spring Boot應用支援熱部署,提高開發者的開發效率,無需手動重新開機Spring Boot應用。
-
項目搭建
本文是采用
搭建的IDEA
應用,通過Spring Boot
配置,可以支援修改java檔案會自動重新開機程式,一些資源無需觸發重新開機。預設情況下,更改spring-boot-devtools
,/META-INF/maven
,/META-INF/resources
,/resources
,/static
或/public
下的資源不會觸發重新開機,而是觸發/templates
。livereload
子產品包含一個嵌入的devtools
伺服器,可以在資源變化時用來觸發浏覽器重新整理。浏覽器需要在livereload
下載下傳安裝擴充。 例如livereload.com
浏覽器在應用商店安裝Chrome
後,在要自動重新整理的頁面點選對應的圖示,啟動應用後更新頁面内容或者css等都會觸發頁面自動重新整理。livereload插件
-
livereload
通過引入的腳本livereload
在livereload.js
服務和浏覽器之間建立了一個livereload
連接配接。每當監測到檔案的變動,WebSocket
服務就會向浏覽器發送一個信号,浏覽器收到信号後就重新整理頁面,實作了實時重新整理的效果。每次啟動時,需要點選對應的圖示,如下圖所示。livereload
-
項目代碼配置
(1) pom.xml
(2) yml<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>
devtools: livereload: enabled: true #是否支援livereload port: 35729 restart: enabled: true #是否支援熱部署
-
IDEA配置
(1)
-File-Settings
Compiler-Build
project automatically
(2)快捷鍵:ctrl + shift + alt + / 選擇spring boot 熱部署devtools實作
, 勾上Registry
Compiler autoMake allow when app running
-
安裝livereload插件
下載下傳
插件,将其安裝到chrome擴充程式中,并選中允許通路檔案網址。livereload
-
測試
(1)修改類 應用會重新開機
(2)修改配置檔案 應用會重新開機
(3)修改靜态檔案(html、css等),應用不會重新開機,但是會調用livereload,浏覽器會自動重新整理,顯示最新的修改内容