1. 程式人生 > >springboot實現熱部署-idea

springboot實現熱部署-idea

spring boot實現熱部署


說明:使用spring boot開發web專案,一旦修改了介面,即使是很小的修改,也需要重新啟動應用,所以spring給我們開發者提供了一個模組(spring-boot-devtools)來支援熱部署,使我們在改變程式碼時無需手動重啟應用

原理
springboot 重啟是 reload 重啟,通過監控 classpath 的變化,如果 classpath 中的檔案發生變化,即觸發重啟,springboot 通過兩個 classpath 來完成 reload,一個 basic classloader 中載入不變的類(第三方Jar包),一個 resatrt classloader 載入 classpath 中的類,重啟的時候,restart classloader 中的類丟棄重新載入

引入依賴

    <!--實現熱部署的核心依賴-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>

    <!--web開發的核心依賴-->
    <dependency
>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--實現test測試的核心依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>
spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!--底下三行必須加上,否則熱部署不起作用-->
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>

使用
當新增以上資源後,idea預設是不會自動編譯的,需要我們自己手動編譯,快捷鍵 ctrl+F9,可以重新編譯