1. 程式人生 > 程式設計 >一篇文章帶你搞定SpringBoot中的熱部署devtools方法

一篇文章帶你搞定SpringBoot中的熱部署devtools方法

一、前期配置

建立專案時,需要加入 DevTools 依賴

一篇文章帶你搞定SpringBoot中的熱部署devtools方法

二、測試使用

(1)建立 HelloController

@RestController
public class HelloController {

  @GetMapping("/hello")
  public String hello(){
    return "hello devtools";
  }
}

一篇文章帶你搞定SpringBoot中的熱部署devtools方法

對其進行修改:然後不用重新執行,重新構建即可:只加載變化的類

一篇文章帶你搞定SpringBoot中的熱部署devtools方法

三、熱部署的原理

Spring Boot 中熱部署最最關鍵的原理就是兩個不同的 classloader:

  • base classloader
  • restart classloader

其中 base classloader 用來載入那些不會變化的類,例如各種第三方依賴,而 restart classloader 則用來載入那些會發生變化的類,例如你自己寫的程式碼。

Spring Boot 中熱部署的原理就是當代碼發生變化時,base classloader 不變,而 restart classloader 則會被廢棄,被另一個新的 restart classloader 代替。在整個過程中,因為只重新載入了變化的類,所以啟動速度要被重啟快。

需要注意,使用devtools,預設情況下當靜態資源發生變化時,並不會觸發專案重啟

到此這篇關於一篇文章帶你搞定SpringBoot中的熱部署devtools方法的文章就介紹到這了,更多相關SpringBoot 熱部署devtools內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!