網站首頁 編程語言 正文
1.背景
????????開發過程中,當寫完一個功能我們需要運行應用程序測試,可能這個小功能中存在多個小bug,我們需要改正后重啟服務器,這無形之中拖慢了開發的速度增加了開發時間,SpringBoot提供了spring-boot-devtools,使我們在更改應用和配置文件的時候,自動重啟應用!
2.熱啟動配置步驟
????????1)添加Spring Boot DevTools依賴:
? ? ? ? 2)在yml中顯示配置
????????2)配置IDE:在你的集成開發環境(IDE)中,確保已啟用自動構建和熱交換(Hot Swap)功能。
? ? ? ? 4)啟動應用程序:運行你的Spring Boot應用程序的主類,啟動應用程序。
????????5)修改代碼測試:在代碼中進行更改和增加功能測試。
查看變化:當你進行代碼更改后,保存文件并查看控制臺或瀏覽器,你將看到應用程序會自動重新加載修改后的代碼,并且任何更改都會在運行時生效。
2.1.spring-boot-devtools簡介
- spring-boot-devtools是一個用于開發Spring Boot應用的開發工具,它提供了很多有用的功能,幫助開發人員提高開發效率和調試能力
- 使用spring-boot-devtools可以自動監視應用的類文件和靜態資源的變化,并且在變化時自動重新啟動應用,從而節省了重新編譯和手動重啟的時間。
- spring-boot-devtools還提供了一個內嵌的開發者工具頁面,可以用來查看應用的詳細信息,如自動配置報告、加載的bean等。
- 通過在application.properties文件中定義相應的屬性,可以對spring-boot-devtools進行配置,如關閉自動重啟、指定資源變化觸發的延遲時間等
2.2.工程中添加依賴
????????在項目的pom.xml文件中,添加Spring Boot DevTools依賴項。這可以通過pom.xml在<dependencies>
標簽內添加以下行來實現:
<dependency>
? ?<groupId>org.springframework.boot</groupId>
? ?<artifactId>spring-boot-devtools</artifactId>
? ?<scope>runtime</scope>
? ?<optional>true</optional>
</dependency>
2.3.yml配置
spring:
devtools:
restart:
enabled: true #設置開啟熱部署
additional-paths: src/main/java #重啟目錄
exclude: WEB-INF/**
2.4.設置IDEA自動編譯
????????1) 快捷鍵Ctrl+Alt+S打開設置,在(Build, Execotion, Deployment) -> Compiler-> 勾選Build Project automatically項,重啟IDEA。
 同時按下快捷鍵Ctrl + Shift + Alt + /,會彈出下面的方框,選擇Registry
????????3) 勾選 compiler.automake.allow.when.app running和compiler.document.save.enabled(指定是否啟用保存項目響應當文檔被更改),并將它們的對應的保存動作延時時間適當縮小,或者使用默認值也可以。當然,我沒修改它的默認值的時候,發現項目修改的時候,它自動重新熱啟動的時間有點久(可縮小對應時間或者參考本文下一段解決方法)。
? ? ? ? 4) 重啟應用,當改動代碼時,觀察控制臺輸出,你會發現Spring Boot已經檢測到了文件變化,并重新啟動。
4.熱啟動與熱部署的區別
? ? ? ??熱啟動是指在已經運行的項目上,再次啟動(代碼、配置文件修改),少加載了一些東西,從而啟動的比快,節省開發時間,啟動應用程序時避免完全重啟的能力。
????????熱部署是指在應用程序正在運行時,可以進行代碼、配置或資源的更改,而無需停止或重啟應用程序。通過熱部署,開發人員可以在不影響應用程序的正常運行的情況下,快速部署更新
????????熱啟動主要關注的是應用程序的整體重啟過程,而熱部署更側重于動態更新和替換部分組件或功能。兩者都是為了減少系統停機時間和提高系統的可用性。
原文鏈接:https://blog.csdn.net/qq_20957669/article/details/132549532
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-10-22 ListView下拉列表控件使用方法詳解_Android
- 2022-07-07 C#操作注冊表之RegistryKey類_C#教程
- 2022-07-17 c++的glog與spdlog的性能對比測試分析_C 語言
- 2022-07-19 Python?assert斷言聲明,遇到錯誤則立即返回問題_python
- 2022-04-17 sa-token快速添加多鑒權體系
- 2022-11-04 ASP.NET?MVC使用正則表達式驗證手機號碼_實用技巧
- 2022-10-06 C++?abs函數實際應用詳解_C 語言
- 2022-07-08 python?open讀取文件內容時的mode模式解析_python
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支