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、無需重啟應用,重新傳送介面請求即可:
可見返回了密碼引數,熱部署生效了!
相關文章
- springboot實現熱部署Spring Boot熱部署
- SpringBoot 實現熱部署Spring Boot熱部署
- idea中實現熱部署Idea熱部署
- 從Java的類載入機制談起:聊聊Java中如何實現熱部署(熱載入)Java熱部署
- SpringBoot實現熱部署兩種方式!Spring Boot熱部署
- SpringBoot整合devtools實現熱部署除錯Spring Bootdev熱部署除錯
- 使用JRebel熱部署熱部署
- java實現zabbix介面開發Java
- Eclipse/tomcat 如何實現應用熱部署和熱啟動EclipseTomcat熱部署
- 在Podman、Kubernetes和OpenShift上使用Odo實現Java開發Java
- 微服務開發神器--JRebel 外掛破解和實現本地/遠端熱部署教程(IntelliJ IDEA版)微服務熱部署IntelliJIdea
- SpringBoot專案在IntelliJ IDEA中實現熱部署Spring BootIntelliJIdea熱部署
- maven+jetty+idea+jrebel 實現專案熱部署MavenJettyIdea熱部署
- Java系列 | 遠端熱部署在美團的落地實踐Java熱部署
- 實戰|如何使用雲開發實現照片附件上傳開發
- 極速開發之Spring Boot五種熱部署方式Spring Boot熱部署
- 使用 Java實現mTLS呼叫JavaTLS
- 使用Kubernetes和Istio實現藍綠部署
- 使用 GitHub 和 Python 實現持續部署GithubPython
- SDK 開發使用 VirtualAPK 實現外掛化APK
- 使用MVC模式實現區塊鏈開發MVC模式區塊鏈
- nginx使用熱部署新增新模組Nginx熱部署
- 使用EventStoreDB實現事件溯源的Java開源專案事件Java
- 使用Eclipse開發Java應用並部署到SAP雲平臺SCP上去EclipseJava
- win10+vscode部署java開發環境Win10VSCodeJava開發環境
- 基於vite多頁面實現多端同構開發和部署Vite
- 一種簡單快捷的 java 熱部署方式Java熱部署
- GO 使用Webhook 實現github 自動化部署GoWebHookGithub
- 使用 Jenkins + Ansible 實現自動化部署 NginxJenkinsNginx
- ASP.NET Core 通過 Microsoft.DotNet.Watcher.Tools 實現熱部署ASP.NETROS熱部署
- 使用Java實現WebSocket通訊JavaWeb
- 如何使用java實現Open AddressingJava
- java設定熱鍵(C++實現dll匯入)JavaC++
- Java後端開發中的任務排程:使用Spring Batch實現批處理Java後端SpringBAT
- Java爬蟲快速開發工具uncs的部署攻略Java爬蟲
- springboot熱部署Spring Boot熱部署
- idea熱部署Idea熱部署
- 使用 Git 實現 專案的自動化部署Git