1. 程式人生 > 實用技巧 >SpringBoot - 12熱部署

SpringBoot - 12熱部署

SpringBoot - 12熱部署

(1)通過DevTools工具實現熱部署

(1.1)修改POM檔案,引入GAV

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

(1.2)設定IDEA

(1.2.1)勾選 Build project automatically

(1.2.2)通過快捷鍵開啟設定項: Ctrl+Shift+Alt+/ ,勾選 complier.automake.allow.when.app.running

(2)熱部署原理

spring-boot-devtools 是一個為開發者服務的一個模組,其中最重要的功能就是自動應用程式碼更改到最新的App上面去。

原理是在發現程式碼有更改之後,重新啟動應用,但是速度比手動停止後再啟動還要更快,更快指的不是節省出來的手工操作的時間。

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

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