1. 程式人生 > >SpringBoot入門 - 熱部署整合

SpringBoot入門 - 熱部署整合

我們可以使用spring-boot-devtools來實現熱部署

spring-boot-devtools 是一個為開發者服務的一個模組,其中最重要的功能就是自動應用程式碼更改到最新的App上面去。原理是在發現程式碼有更改之後,重新啟動應用,但是速度比手動停止後再啟動還要更快,更快指的不是節省出來的手工操作的時間。

其深層原理是使用了兩個ClassLoader,一個Classloader載入那些不會改變的類(第三方Jar包),另一個ClassLoader載入會更改的類(自己寫的),稱為  restart ClassLoader

這樣在有程式碼更改的時候,原來的restart ClassLoader 被丟棄,重新建立一個restart ClassLoader,由於需要載入的類相比較少,所以實現了較快的重啟時間(5秒以內)

如何使用呢??

專案中新增依賴包:

<!-- springboot熱部署所需依賴包 -->
<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional>
      <scope>true</scope>
</dependency>

注意還有如下

<!-- spring-boot-maven-plugin 配合spring-boot-devtools 一起使用! -->
<build>
    <plugins>
        <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
             <configuration>
                 <!--fork :  如果沒有該項配置,則devtools不會起作用,即應用不會restart -->
                 <fork>true</fork>
             </configuration>
         </plugin>
    </plugins>
</build>

溫馨小提示:如果是idea 修改之後需要手動編譯一下才能完成熱部署哦~    ctrl+F9