溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行SpringBoot開(kāi)發(fā)環(huán)境熱部署的配置

發(fā)布時(shí)間:2021-11-18 17:06:28 來(lái)源:億速云 閱讀:169 作者:柒染 欄目:大數(shù)據(jù)

如何進(jìn)行SpringBoot開(kāi)發(fā)環(huán)境熱部署的配置,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

在實(shí)際的項(xiàng)目開(kāi)發(fā)過(guò)中,當(dāng)我們修改了某個(gè)java類文件時(shí),需要手動(dòng)重新編譯、然后重新啟動(dòng)程序的,整個(gè)過(guò)程比較麻煩,特別是項(xiàng)目啟動(dòng)慢的時(shí)候,更是影響開(kāi)發(fā)效率。其實(shí)Spring Boot的項(xiàng)目碰到這種情況,同樣也同樣需要經(jīng)歷重新編譯、重新啟動(dòng)程序的過(guò)程。只不過(guò)Spring Boot 提供了一個(gè)spring-boot-devtools的模塊,使得 Spring Boot應(yīng)用支持熱部署,無(wú)需手動(dòng)重啟Spring Boot應(yīng)用,,提高開(kāi)發(fā)者的開(kāi)發(fā)效率。接下來(lái),聊一聊Spring Boot 開(kāi)發(fā)環(huán)境熱部署。

一、原理

devtools 使用了兩個(gè)類加載器(ClassLoader)。

一個(gè)是 Base類加載器(base classloader ):加載那些不會(huì)改變的類,如:第三方Jar包等。

另一個(gè)是 Restart類加載器(restart classloader):負(fù)責(zé)加載那些正在開(kāi)發(fā)的會(huì)改變的類。這樣在有代碼更改的時(shí)候,因?yàn)橹貑⒌臅r(shí)候只是加載了在開(kāi)發(fā)的Class類,沒(méi)有重新加載第三方的jar包,所以實(shí)現(xiàn)了較快的重啟時(shí)間。

devtools 監(jiān)聽(tīng)classpath下的文件變動(dòng)(發(fā)生在保存時(shí)機(jī)),并且會(huì)立即重啟應(yīng)用。從而實(shí)現(xiàn)類文件和屬性文件的熱部署。

二、快速配置

1、pom配置

引入devtools的依賴

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-devtools</artifactId>    <!-- optional=true, 依賴不會(huì)傳遞, 該項(xiàng)目依賴devtools;之后依賴boot項(xiàng)目的項(xiàng)目如果想要使用devtools, 需要重新引入 -->    <optional>true</optional></dependency>

注意:optional=true, 依賴不會(huì)傳遞, 該項(xiàng)目依賴devtools;之后依賴boot項(xiàng)目的項(xiàng)目如果想要使用devtools, 需要重新引入。

2、application.properties配置

在application.properties中配置devtools。

# 關(guān)閉緩存即時(shí)刷新#spring.thymeleaf.cache=false
#熱部署生效spring.devtools.restart.enabled=true#設(shè)置重啟的目錄spring.devtools.restart.additional-paths=src/main/java#classpath目錄下的WEB-INF文件夾內(nèi)容修改不重啟spring.devtools.restart.exclude=WEB-INF/**

說(shuō)明:

devtools可以實(shí)現(xiàn)頁(yè)面熱部署,即頁(yè)面修改后會(huì)立即生效,需要將application.properties文件中配置spring.thymeleaf.cache=false。

devtools會(huì)監(jiān)聽(tīng)classpath下的文件變動(dòng),并且會(huì)立即重啟應(yīng)用。

3、IDEA配置

如果idea是新安裝的或者之前就沒(méi)有配置過(guò),發(fā)現(xiàn)改變代碼項(xiàng)目熱部署不成功。當(dāng)我們修改了Java類后,IDEA默認(rèn)是不自動(dòng)編譯的,而spring-boot-devtools又是監(jiān)測(cè)classpath下的文件發(fā)生變化才會(huì)重啟應(yīng)用。

所以需要設(shè)置IDEA的自動(dòng)編譯:

(1)File-Settings-Compiler-Build Project automatically

(2)ctrl + shift + alt + /,選擇Registry,勾上 Compiler autoMake allow when app running 

這樣,就可以使用devtools實(shí)現(xiàn)熱部署了。

以上,就把如何配置Spring Boot 開(kāi)發(fā)環(huán)境熱部署介紹完了。還是比較簡(jiǎn)單的,大家自己去研究吧。

關(guān)于如何進(jìn)行SpringBoot開(kāi)發(fā)環(huán)境熱部署的配置問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI