SpringBoot專案熱部署的3種方式

👉 這是一個或許對你有用的社群
🐱 一對一交流/面試小冊/簡歷最佳化/求職解惑,歡迎加入芋道快速開發平臺知識星球。下面是星球提供的部分資料:
👉這是一個或許對你有用的開源專案
國產 Star 破 10w+ 的開源專案,前端包括管理後臺 + 微信小程式,後端支援單體和微服務架構。
功能涵蓋 RBAC 許可權、SaaS 多租戶、資料許可權、商城、支付、工作流、大屏報表、微信公眾號、ERPCRMAI 大模型等等功能:
  • Boot 多模組架構:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 微服務架構:https://gitee.com/zhijiantianya/yudao-cloud
  • 影片教程:https://doc.iocoder.cn
【國內首批】支援 JDK 17/21 + SpringBoot 3.3、JDK 8/11 + Spring Boot 2.7 雙版本 

前言

一般我們的專案都會引各種依賴和配置項,專案的啟動往往比較耗時。可能 debug 的過程中發現需要修改的地方,改了之後如果每次都重啟服務會耗費大量時間,減少摸魚時間。熱部署就是為了解決每次服務都要重啟的問題,提升我們工作效率。
常用的熱部署方式有3種:
  • SpringBoot Configuration方式;
  • spring-boot-devtool;
  • JRebel。
一起來看下怎麼用
基於 Spring Boot + MyBatis Plus + Vue & Element 實現的後臺管理系統 + 使用者小程式,支援 RBAC 動態許可權、多租戶、資料許可權、工作流、三方登入、支付、簡訊、商城等功能
  • 專案地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 影片教程:https://doc.iocoder.cn/video/

SpringBoot Configuraion

這是 Idea 給我們提供的熱部署方式。
IDEA 官方介紹:
https://www.jetbrains.com/help/idea/updating-applications-on-application-servers.html
我們在工具欄上點開專案,選擇 Edit Configuration,彈出下面的介面:
可以看到在 Running Application Update Policies 下有兩個選項:
  • On 'Update' action: 當你選擇這個選項時,自動編譯和更新操作只有在你顯式執行 "Update" 操作時才會觸發。顯式執行"Update"操作就是透過手動點選【Build Project】時觸發。這種方式可以使你完全控制編譯和更新的時機,避免頻繁的自動更新。(快捷鍵:Ctrl + F10)
  • On frame deactivation: 當你選擇這個時,每當 IntelliJ IDEA 的視窗失去焦點(即你切換到其他應用程式)時,IDE 會自動編譯並更新執行中的應用程式。它適合那些需要頻繁編譯和更新的開發場景。
當兩個都選了時,會使用第二種策略,即失去焦點時自動更新。一般大型專案建議使用第一個選項,否則頻繁地自動更新會耗費較多資源。
當我們選擇 On 'Update' action 時,有幾種方式可供選擇(不同版本可能展示的有差異),不同選項的作用見 Idea 的備註:
一般選擇 Update classes and resources,它會編譯所有修改的類檔案和資原始檔。
基於 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的後臺管理系統 + 使用者小程式,支援 RBAC 動態許可權、多租戶、資料許可權、工作流、三方登入、支付、簡訊、商城等功能
  • 專案地址:https://github.com/YunaiV/yudao-cloud
  • 影片教程:https://doc.iocoder.cn/video/

spring-dev-tools

這個工具是依賴 Liveload 伺服器實現的,使用了兩個類載入器ClassLoader,一個ClassLoader載入不會發生更改的類(第三方jar包),另一個ClassLoader(restart ClassLoader)載入會更改的類(自定義的類)。
使用方式很簡單,pom檔案中引入依賴即可:

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-devtools</artifactId>

    <optional>

true

</optional> <!-- 可以防止將devtools依賴傳遞到其他模組中 -->

</dependency>

然後也是手動點選【Build Project】即可觸發熱部署。當然也可以配置 Idea 的自動更新。

JRebel

JRebel是一個 JVM 外掛,在 Idea 中可以直接安裝,下面是官網的介紹:
JRebel is a JVM plugin that streamlines Java application development by skipping the time-consuming build and redeploy steps. With JRebel, developers can view code changes in real time, preserve application state, and increase coding efficiency.
  • 外掛安裝 直接搜 JRebel and XRebel 安裝即可。
  • 啟用,這個網上搜下。
  • 設定增量編譯:
  • double shift,輸入 register:
使用JRebel啟動專案。

歡迎加入我的知識星球,全面提升技術能力。
👉 加入方式,長按”或“掃描”下方二維碼噢
星球的內容包括:專案實戰、面試招聘、原始碼解析、學習路線。
文章有幫助的話,在看,轉發吧。
謝謝支援喲 (*^__^*)

相關文章