Java開發--36--Springboot使用dev-tools實現熱部署

隨 亦發表於2020-11-08

一、基礎理論

在之前,我們對於Springboot專案每加一個小的程式碼或者修改一個註解,都要重新啟動一次專案使改動生效,這是一個很麻煩的工作。

熱部署的概念:應用正在執行的時候就能進行升級功能, 而不需要重新啟動應用。原理是監聽位元組碼,就是當我們更新了位元組碼檔案,它就幫我們熱更新到專案裡面去,對於Java應用程式來說, 熱部署就是在執行時更新Java類檔案,從而能實時更新專案改動。

好處:不需要重新手工啟動應用,提高本地開發效率。

建議:只在本地使用熱部署,不要線上上使用熱部署,因為假如該程式有漏洞,黑客掌握該漏洞後,將位元組碼注入到專案檔案裡面,後果會非常嚴重。

常見實現熱部署的方式:JrebelSpring Loadedspring-boot-devtools。其中JrebelSpring 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、無需重啟應用,重新傳送介面請求即可:

可見返回了密碼引數,熱部署生效了!
在這裡插入圖片描述

相關文章