spring boot 熱部署devtools實現(成功,主要是添加依賴后配置setting)


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,瀏覽器會自動刷新,顯示最新的修改內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM