天天看點

spring boot 熱部署devtools實作

這裡是 原文連結

  1. devtools

      spring為開發者提供了一個名為spring-boot-devtools的子產品來使Spring Boot應用支援熱部署,提高開發者的開發效率,無需手動重新開機Spring Boot應用。

  2. 項目搭建

      本文是采用

    IDEA

    搭建的

    Spring Boot

    應用,通過

    spring-boot-devtools

    配置,可以支援修改java檔案會自動重新開機程式,一些資源無需觸發重新開機。預設情況下,更改

    /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>
          <fork>true</fork> <!-- 如果沒有該配置,devtools不會生效 -->
       </configuration>
    </plugin>
               
    (2) yml
    devtools:
      livereload:
        enabled: true #是否支援livereload
        port: 35729
      restart:
        enabled: true #是否支援熱部署
               
  5. IDEA配置

    (1)

    File-Settings

    -

    Compiler-Build

    project automatically

    spring boot 熱部署devtools實作
    (2)快捷鍵:ctrl + shift + alt + / 選擇

    Registry

    , 勾上

    Compiler autoMake allow when app running

  6. 安裝livereload插件

    下載下傳

    livereload

    插件,将其安裝到chrome擴充程式中,并選中允許通路檔案網址。
  7. 測試

    (1)修改類 應用會重新開機

    (2)修改配置檔案 應用會重新開機

    (3)修改靜态檔案(html、css等),應用不會重新開機,但是會調用livereload,浏覽器會自動重新整理,顯示最新的修改内容