Springboot自動加載工具-devtools的理解與使用


聲明:本文參考自:https://blog.csdn.net/mylovewanzi/article/details/104059933

使用spring-boot-devtools的應用程序將在類路徑上的文件發生更改時自動重新啟動。

在pom.xml文件中加入一下依賴

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
     <scope>runtime</scope>
     <optional>true</optional>
</dependency>

這里多了一個optional,為true表示項目在打包的時候不會被打包進項目中

此時,只要classpath下的文件發生了變化,項目就會自動重啟,這極大的提高了項目的開發速度

要是項目自動編譯,idea還需做一些簡單的配置。

打開setting,勾選自動構建項目。

 然后按住CTRL+SHIFT+ALT+/,調出如下頁面:選擇第一個

 然后找到如下,並勾選:

重啟IDEA,這是你就可以使用devtools來自動構建項目了。

springboot中自動重啟項目的原理:

  springboot中有兩個類加載器,一個是basecalssloader,負責項目引用的第三方jar,這類jar有一種特新,就是不會變化;另一個加載器是restartcalssloader,它用來加載自己寫的class,這寫類是有可能變化的。當項目需要重啟時,restartclassloader會被新創建的類加載器替代,而baseclassloader則不會,這要就省去了重新加載第三方jar包的時間,自然啟動速度就比冷啟動要快。

靜態資源文件:
  默認情況下,靜態資源文件的修改是不觸發項目重啟的。當然也不是不能,開發者可以自己定義。
需要在配置文件中添加:

spring.devtools.restart.exclude=static/**

這表示static目錄下的靜態資源文件的修改也會觸發項目重啟。
還有另一種方式,也是同樣的效果:

spring.devtools.restart.additional-paths=src/main/resources/static

編碼是一個連續的過程,有時候重啟太頻繁了,不僅浪費電腦性能,也浪費我的寶貴時間。有一個方法可以解決這個問題,就是在你需要重啟項目時,修改一個指定的文件,只有這個指定的文件被修改才能觸發重啟項目,配置如下:

spring.devtools.restart.trigger-file=.trigger-file

其實靜態資源文件的修改是沒必要重啟項目的,devtools默認鍵入了LiveReload服務器,可以解決靜態資源的熱部署。只需要在chrome安裝livereload插件即可。

 

 


免責聲明!

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



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