Java開發--36--Springboot使用dev-tools實現熱部署
一、基礎理論
在之前,我們對於Springboot專案每加一個小的程式碼或者修改一個註解,都要重新啟動一次專案使改動生效,這是一個很麻煩的工作。
熱部署的概念
:應用正在執行的時候就能進行升級功能, 而不需要重新啟動應用。原理是監聽位元組碼,就是當我們更新了位元組碼檔案,它就幫我們熱更新到專案裡面去,對於Java應用程式來說, 熱部署就是在執行時更新Java類檔案,從而能實時更新專案改動。
好處
:不需要重新手工啟動應用,提高本地開發效率。
建議
:只在本地使用熱部署,不要線上上使用熱部署,因為假如該程式有漏洞,黑客掌握該漏洞後,將位元組碼注入到專案檔案裡面,後果會非常嚴重。
常見實現熱部署的方式:Jrebel
、Spring Loaded
、spring-boot-devtools
。其中Jrebel
和Spring Loaded
是非Springboot專案的熱部署方式。spring-boot-devtools
是Springboot自帶的熱部署方式。
二、dev-tools實現熱部署(IDEA)
1、pom檔案新增依賴包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork><!--必須新增這個配置-->
</configuration>
</plugin>
</plugins>
</build>
新增完之後,由於原本沒有對應的依賴包,所以字型顏色是紅色。重新整理Maven,IDEA會自動下載依賴包安裝,字型顏色就會變為正常的黑色了。
如圖所示:
2、修改IDEA中的自動編譯配置(修改完先點應用,再點OK哈),如圖所示:
3、使用快捷鍵開啟,選擇Registry。注意預設快捷鍵:
windows:shift+ctrl+alt+/
mac:shift+command+option+/
選擇它!
彈出視窗後,選擇compiler.automake.allow.when.app.running
,如圖所示:
4、重啟IDEA,使配置生效。
三、測試熱部署生效
1、呼叫當前介面/api/v1/pub/user/list
,效果如下:
2、修改程式碼,將密碼返回出來,修改的程式碼如下所示(將其註釋掉即可):
3、無需重啟應用,重新傳送介面請求即可:
可見返回了密碼引數,熱部署生效了!
相關文章
- Spring-loaded實現熱部署-開發環境Spring熱部署開發環境
- Java伺服器熱部署的實現原理Java伺服器熱部署
- springboot實現熱部署Spring Boot熱部署
- SpringBoot 實現熱部署Spring Boot熱部署
- idea中實現熱部署Idea熱部署
- 使用spring-loaded實現應用熱部署Spring熱部署
- tomcat熱部署的實現原理Tomcat熱部署
- 從Java的類載入機制談起:聊聊Java中如何實現熱部署(熱載入)Java熱部署
- Spring Boot 揭祕與實戰(八) 釋出與部署 - 開發熱部署Spring Boot熱部署
- 深入探索 Java 熱部署Java熱部署
- Java 熱部署深入探索Java熱部署
- React Native 實現熱部署、差異化增量熱更新React Native熱部署
- java實現zabbix介面開發Java
- SpringBoot實現熱部署兩種方式!Spring Boot熱部署
- 使用springloaded進行java應用熱部署SpringJava熱部署
- Eclipse/tomcat 如何實現應用熱部署和熱啟動EclipseTomcat熱部署
- Java系列 | 遠端熱部署在美團的落地實踐Java熱部署
- Java熱部署外掛JRebelJava熱部署
- 1、CentOS部署Java開發環境CentOSJava開發環境
- 在Podman、Kubernetes和OpenShift上使用Odo實現Java開發Java
- 實戰|如何使用雲開發實現照片附件上傳開發
- nginx使用熱部署新增新模組Nginx熱部署
- 微服務開發神器--JRebel 外掛破解和實現本地/遠端熱部署教程(IntelliJ IDEA版)微服務熱部署IntelliJIdea
- maven+jetty+idea+jrebel 實現專案熱部署MavenJettyIdea熱部署
- 極速開發之Spring Boot五種熱部署方式Spring Boot熱部署
- Gradle裡配置jetty實現靜態資源的熱部署GradleJetty熱部署
- [微信開發] 微信網頁授權Java實現網頁Java
- SDK 開發使用 VirtualAPK 實現外掛化APK
- 使用MVC模式實現區塊鏈開發MVC模式區塊鏈
- iOS專案開發實戰——使用CoreLocation實現定位iOS
- 新浪明星日誌熱門推薦(java實現)Java
- 基於vite多頁面實現多端同構開發和部署Vite
- Redis實現使用者熱詞推薦Redis
- 一種簡單快捷的 java 熱部署方式Java熱部署
- SpringBoot專案在IntelliJ IDEA中實現熱部署Spring BootIntelliJIdea熱部署
- 使用 Java實現mTLS呼叫JavaTLS
- 使用EventStoreDB實現事件溯源的Java開源專案事件Java
- java使用google開源工具實現圖片壓縮JavaGo開源工具