IDEA中使用SpringBoot 熱啓動

在開發過程中,當寫完一個功能我們需要運行應用程序測試,可能這個小功能中存在多個小bug,我們需要改正後重啓服務器,這無形之中拖慢了開發的速度增加了開發時間,SpringBoot提供了spring-boot-devtools,使我們在更改應用和配置文件的時候,自動重啓應用!

配置步驟

  1. 打開pom.xml文件添加依賴
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <scope>runtime</scope>
   <optional>true</optional>
</dependency>

 只要classpath下的文件有變動,它就會自動重啓。這在使用IDE時非常有用,因爲可以很快得到代碼改變的反饋。默認情況下,classpath下任何指向文件夾的實體都會被監控,注意一些資源的修改比如靜態assets,視圖模板不需要重啓應用。
  由於DevTools監控classpath下的資源,所以唯一觸發重啓的方式就是更新classpath。在Eclipse裏,保存一個修改的文件將引起classpath更新,並觸發重啓。在IntelliJ IDEA中,默認是不自動編譯的,我們需要設置自動編譯。

  1. 設置IDEA自動編譯
    (1).快捷鍵Ctrl+Alt+S打開設置,在Build,Execotion,Deployment->Compiler->勾選Build Project automatically項
    在這裏插入圖片描述
    (2).快捷鍵Ctrl + Shift + Alt + /,選擇Registry
    在這裏插入圖片描述
    (3).勾選 compiler.automake.allow.when.app running和compiler.document.save.enabled(指定是否啓用保存項目響應當文檔被更改),並將它們的對應的保存動作延時時間適當縮小,或者使用默認值也可以。當然,我沒修改它的默認值的時候,發現項目修改的時候,它自動重新熱啓動的時間有點久(可縮小對應時間或者參考本文下一段解決方法)。
    在這裏插入圖片描述
    重啓應用,當改動代碼時,觀察控制檯輸出,你會發現Spring Boot已經檢測到了文件變化,並重新啓動,你會發現體驗爲何如此之棒,爽極了!

注意,如果你沒修改保存動作的延時時間或者是IDE閒置時間少於指定的毫秒數,導致了你修改代碼並刷新頁面,發現並沒有改變或者項目沒有重新熱啓動,你可以在你更改的代碼文件處使用快捷鍵ctrl+f9,重新build project,等待項目重新熱啓動完畢,然後再刷新頁面即可。

如果你使用的是模板引擎,由於模板引擎的頁面默認是開啓緩存的,在開發階段可以先將它關閉。

# Thymeleaf的配置:
spring.thymeleaf.cache=false
# FreeMarker的配置:
spring.freemarker.cache=false
# Groovy的配置:
spring.groovy.template.cache=false
# Velocity的配置:
spring.velocity.cache=false

熱啓動與熱部署的區別

熱啓動是指在已經運行的項目上,再次啓動(比如說,做了修改代碼),少加載了一些東西,從而啓動的比快,節省開發時間。
熱部署會啓動自動加載修改代碼的部分,而idea 本身不支持熱部署,需要在idea中安裝插件JRebel。

參考文章

SpringBoot熱啓動讓開發更便捷
Can’t get devtools auto build service working on Windows…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章