欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot實現(xiàn)熱部署的三種方式

 更新時間:2023年12月26日 15:26:27   作者:Myovlmx  
本文主要介紹了SpringBoot實現(xiàn)熱部署的三種方式,主要包括配置pom.xml文件,使用插件的執(zhí)行命令mvn spring-boot:run啟動項,使用springloader本地啟動修改jvm參數(shù),使用devtools工具包,感興趣的可以了解一下

熱部署,就是不需要停掉服務(wù),可以線上改,改完立馬生效。

1.為什么用熱部署?

因為不啟用熱部署時每次更改java數(shù)據(jù)都要重啟服務(wù)器影響開發(fā)效率。

2.熱部署的實現(xiàn)原理?

深層原理是使用了兩個ClassLoader,一個Classloader加載那些不會改變的類(第三方Jar包),另一個ClassLoader加載會更改的類,稱為restart ClassLoader,這樣在有代碼更改的時候,原來的restart ClassLoader 被丟棄,重新創(chuàng)建一個restart ClassLoader,由于需要加載的類相比較少,所以實現(xiàn)了較快的重啟時間。

3. 熱部署的實現(xiàn)方式

1.使用springloaded配置pom.xml文件,使用mvn spring-boot:run啟動

		<!--實現(xiàn)熱部署-->
       <!--devtools熱部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
            <scope>true</scope>
        </dependency>

然后在Settings→Build→Compiler中將Build project automatically勾選上,最后按ctrl+shift+alt+/ 選擇registy,將compiler.automake.allow.when.app.running勾選。另外,對于某些idea沒有這個選項的,設(shè)置好其他的之后,ctrl+f9也是可以的。

(1) devtools可以實現(xiàn)頁面熱部署(即頁面修改后會立即生效,這個可以直接在application.properties文件中配置spring.thymeleaf.cache=false來實現(xiàn)),
實現(xiàn)類文件熱部署(類文件修改后不會立即生效),實現(xiàn)對屬性文件的熱部署。
即devtools會監(jiān)聽classpath下的文件變動,并且會立即重啟應(yīng)用(發(fā)生在保存時機),注意:因為其采用的虛擬機機制,該項重啟是很快的
(2)配置了true后在修改java文件后也就支持了自動部署,不過這種方式是屬于項目重啟,會清空session中的值,也就是如果有用戶登陸的話,項目重啟后需要重新登陸。

2.使用springloaded本地加載啟動,配置jvm參數(shù)

-javaagent:<jar包地址> -noverify

3.使用devtools工具包,操作簡單,但是每次需要重新部署

1、引入devtools依賴

在你的pom.xml配置文件中,引入devtools依賴包:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

提示:

設(shè)置optional 為true,是避免大家微服務(wù)項目父子項目依賴?yán)^承沖突。

2、devtools的配置

spring:
  devtools:
    restart:
      enabled: true  #設(shè)置開啟熱部署,false即不開啟熱部署
      additional-paths: src/main/java #指定熱部署的目錄
      exclude: test/**  #指定目錄不更新

3、Intellij Idea修改

如果你是使用的idea工具開發(fā),那你還需要改以下兩個地方:

1、勾上自動編譯或者手動重新編譯 File -> Setting -> Build, Execution, Deployment -> Compiler:勾選 [Build project automatically]

演示截圖如下:

2、注冊 Shift+Ctrl+Alt+/(Windows快捷鍵), 單擊[Registry],勾選 [compiler.automake.allow.when.app.running]

快捷鍵:Shift+Ctrl+Alt+/ 后,會彈出如下界面:

然后單擊 Registry,找到 [compiler.automake.allow.when.app.running]把它勾選上。具體演示如下:

到此,以上就完成了熱部署的所有配置啦,你們記得配置完成后,重啟idea!讓所有配置都生效。

再次,若想驗證熱部署是否生效,你們可以做個簡單測試(比如隨便修改個接口地址啥的,然后用新接口地址去訪問,驗證修改代碼是否在不手動啟動項目的情況下生效等),我這里就不給大家演示了。

同時,如下是我從網(wǎng)上看到的一些注意事項,經(jīng)實測確實如此,也希望大家在使用熱部署的同時,也能少走些彎路。

具體如下:

  • package 打包時,不包含devtools工具。
  • 生產(chǎn)環(huán)境devtools將被禁用,如java -jar方式或者自定義的類加載器等都會識別為生產(chǎn)環(huán)境。
  • devtools會在windows資源管理器占用java進程,在開發(fā)工具里面殺不掉,只能手動kill掉,不然重啟會選成端口被占用情況。
  • Thymeleaf無需配置spring.thymeleaf.cache: false,devtools默認(rèn)會自動設(shè)置。

到此這篇關(guān)于SpringBoot實現(xiàn)熱部署的三種方式的文章就介紹到這了,更多相關(guān)SpringBoot 熱部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java日常練習(xí)題,每天進步一點點(13)

    Java日常練習(xí)題,每天進步一點點(13)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • java JDBC主要組件連接數(shù)據(jù)庫及執(zhí)行SQL過程示例全面詳解

    java JDBC主要組件連接數(shù)據(jù)庫及執(zhí)行SQL過程示例全面詳解

    這篇文章主要為大家介紹了java JDBC主要組件連接數(shù)據(jù)庫及執(zhí)行SQL的過程示例全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • java如何根據(jù)日期生成單號

    java如何根據(jù)日期生成單號

    這篇文章主要介紹了java如何根據(jù)日期生成單號問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Spring之@Qualifier注解的具體使用

    Spring之@Qualifier注解的具體使用

    本文主要介紹了Spring之@Qualifier注解的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • Java鍵值對Pair的使用方式和操作實現(xiàn)

    Java鍵值對Pair的使用方式和操作實現(xiàn)

    鍵值對是一種常見的數(shù)據(jù)結(jié)構(gòu),它由一個唯一的鍵和與之關(guān)聯(lián)的值組成,本文就來介紹一下Java鍵值對Pair的使用方式和操作實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • 踩坑批量更新sql報錯,實際sql能夠正常執(zhí)行的問題

    踩坑批量更新sql報錯,實際sql能夠正常執(zhí)行的問題

    在項目工程遷移過程中,遇到了一個批量更新接口在新工程中報錯的問題,通過分析,排除了代碼錯誤的可能,最終發(fā)現(xiàn)是由于數(shù)據(jù)庫連接配置不當(dāng)導(dǎo)致的,在jdbc連接字符串中加入allowMultiQueries=true參數(shù)后,問題得以解決,這個參數(shù)的作用是允許SQL批量執(zhí)行
    2022-12-12
  • Spring中的@ExceptionHandler注解詳解與應(yīng)用示例

    Spring中的@ExceptionHandler注解詳解與應(yīng)用示例

    本文詳細(xì)介紹了Spring框架中的@ExceptionHandler注解的用法,包括基本用法、全局異常處理、結(jié)合@ResponseStatus注解以及返回值類型,通過示例展示了如何使用@ExceptionHandler注解處理不同類型的異常,并提供定制化的異常處理響應(yīng),需要的朋友可以參考下
    2024-11-11
  • Java集合框架中迭代器Iterator解析

    Java集合框架中迭代器Iterator解析

    這篇文章主要為大家簡單介紹了Java集合框架中迭代器Iterator的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 簡述Java異步上傳文件的三種方式

    簡述Java異步上傳文件的三種方式

    這篇文章主要為大家詳細(xì)介紹了Java異步上傳文件的三種方式,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Java輕松實現(xiàn)批量插入或刪除Excel行列操作

    Java輕松實現(xiàn)批量插入或刪除Excel行列操作

    在職場生活中,對Excel工作表的行和列進行操作是非常普遍的需求,下面小編就來和大家介紹一下如何在Java中完成批量插入、刪除行和列的操作吧
    2023-10-10

最新評論