[轉]springboot+idea熱部署(自動刷新)


https://blog.csdn.net/qq_42685050/article/details/81588584

近來在使用idea做springboot的項目,但是發現每次修改之后我都需要重新將項目關閉再開啟,這樣比較繁瑣,發現通過熱部署的方式讓我們可以一邊修改我們的項目,然后在頁面中直接通過刷新展示出來

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

devtools的原理

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

這里我沒有把所有的方式都嘗試一遍,只是使用了devtools的方式
總的來說,一共需要兩個步驟:
第一步、先設置我們的pom.xml文件,加入依賴
首先是把下面代碼在

 <!--添加熱部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
            <scope>true</scope>
        </dependency>

另外下面的代碼是放在 下面 里的

<plugin>
                <!--熱部署配置-->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--fork:如果沒有該項配置,整個devtools不會起作用-->
                    <fork>true</fork>
                </configuration>
            </plugin>

第二步、設置IDEA的自動編譯:
(1)File-Settings-Compiler勾選 Build Project automatically

(2)快捷鍵 ctrl + shift + alt + /,選擇Registry,勾上 Compiler autoMake allow when app running

這樣我們的熱部署就完成了,可以再我們的項目中修改返回值,或者修改Mapping的value值后,在我們的頁面中刷新試試,
我們的修改已經生效了,不用通過再關閉再開啟項目查看了。
借鑒文章:springboot熱部署(二)——springboot熱部署與發布、SpringBoot配置devtools實現熱部署


免責聲明!

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



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