1. 程式人生 > 實用技巧 >idea的熱載入與熱部署

idea的熱載入與熱部署

一:熱載入與熱部署 熱部署的意思就是不用手動重啟環境,修改類後,專案會自動重啟。但是如果專案比較大,重啟也需要耗時十幾秒左右。 熱載入意為不需要重新啟動,修改了什麼檔案就重新載入什麼檔案,可以做到1,2秒左右就能看到效果。所以更節省時間。 但是二者是互有利弊。熱部署的好處是,重新啟動,不存在修改檔案和整個環境不一致的情況,而且是任何修改都生效。但是這裡的熱載入卻有限制。吾經過測試發現,至少在修改controller上方法的requestMapping時是不會馬上生效。因為這個是在啟動時就已經載入的,所以這也是熱載入修改什麼載入什麼帶來的必然結果。 二:熱部署 熱部署網上有很多部落格,基本可以說是四步。
1)修改build為自動編譯 2)允許執行時編譯:alt+ctrl+shift+/調出Registry,選中執行時編譯 3)新增pom依賴
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
</dependency>
4)maven編譯外掛
<build
> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> <addResources>true</addResources>
</configuration> </plugin> </plugins> </build>
這種方式就是修改後會自動重新啟動,免去手工重啟。並不能實現不重啟而自動載入修改的類。 三:熱載入 要做到熱載入需要兩步。一是編譯,二是載入。吾經過測試整理出以下: 1)設定自動編譯,見2.1 2)設定執行執行時編譯,見2.2 3)設定手動“update”或者idea失去焦點時更新類與資源 4)以debug方式啟動 這樣就能實現修改了類後,手動點選“update" 即idea下面的重新整理按鈕,或者點開另外個程式,idea就會重新去載入更新的類。這時馬上就能看到更新效果。(專案沒有重啟,但是會看到idea有一個重新整理的動作)。這種方式的侷限性前文已有說到。 吾測試時,有以下幾個坑。 a)當不以debug方式啟動時,設定允許自動編譯後,就算反編譯類,發現已經更改,就算去手動重新整理(ctrl+F10)也不會起作用。我猜想是因為idea內建快取的原因。所以必須以debug方式啟動。 四:結尾 正常的方式是,我們在開發一個功能後,才需要啟動專案。或者debug方式去除錯問題。至於說熱部署和熱載入,哪種更適合你的特殊需要,就格取所好吧!