1. 程式人生 > >Spring Boot學習筆記-配置devtools實現熱部署

Spring Boot學習筆記-配置devtools實現熱部署

原理 enc cnblogs 配置文件 target res 快的 pen cache

寫在前面

  Spring為開發者提供了一個名為spring-boot-devtools的模塊來使Spring Boot應用支持熱部署,提高開發者的開發效率,無需手動重啟Spring Boot應用。


devtools的原理

  深層原理是使用了兩個ClassLoader,一個Classloader加載那些不會改變的類(第三方Jar包),另一個ClassLoader加載會更改的類,稱為restart ClassLoader,這樣在有代碼更改的時候,原來的restart ClassLoader 被丟棄,重新創建一個restart ClassLoader,由於需要加載的類相比較少,所以實現了較快的重啟時間。


配置devtools

  首先,我們在pom.xml添加spring-boot-devtools依賴。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional> <!-- 表示依賴不會傳遞 -->
    </dependency>

  接著,修改我們之前的pom.xml

:

    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <fork>true</fork> <!-- 如果沒有該配置,devtools不會生效 -->
        </configuration>
    </plugin>

此時,重新啟動應用,修改代碼進行測試。


測試

  • 修改類–>保存:應用會重啟
  • 修改配置文件–>保存:應用會重啟
  • 修改頁面–>保存:應用不會重啟,但會重新加載,頁面會刷新(原理是將spring.thymeleaf.cache設為false,參考:Spring Boot配置模板引擎)

結語

  這樣進行簡單的配置,就可以實現Spring Boot的熱部署,為之後的開發提高了效率。
  個人博客:https://www.howieli.cn 和個人CSDN博客: http://blog.csdn.net/howieli_1995。


參考資料

  • 趙計剛的博客
  • 林祥纖的博客

Spring Boot學習筆記-配置devtools實現熱部署