最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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ù)項目父子項目依賴繼承沖突。

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默認會自動設(shè)置。

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

相關(guān)文章

  • Java中super關(guān)鍵字的用法和細節(jié)

    Java中super關(guān)鍵字的用法和細節(jié)

    大家好,本篇文章主要講的是Java中super關(guān)鍵字的用法和細節(jié),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Springboot整合RabbitMq測試TTL的方法詳解

    Springboot整合RabbitMq測試TTL的方法詳解

    這篇文章主要介紹了Springboot整合RabbitMq測試TTL的設(shè)置,設(shè)置TTL一般由兩種設(shè)置方法,設(shè)置整個隊列的過期時間另一種設(shè)置單個消息的過期時間,通過示例圖文相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • SpringBoot打印Banner的實現(xiàn)示例

    SpringBoot打印Banner的實現(xiàn)示例

    本文主要介紹了SpringBoot啟動Banner的實現(xiàn)原理和打印流程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2025-01-01
  • Spring中的BeanFactory對象實例化工廠詳解

    Spring中的BeanFactory對象實例化工廠詳解

    這篇文章主要介紹了Spring中的BeanFactory對象實例化工廠詳解,BeanFactory及其子類是Spring IOC容器中最重要的一個類,BeanFactory由類名可以看出其是一個Bean工廠類,其實它確實是一個Bean工廠類,完成Bean的初始化操作,需要的朋友可以參考下
    2023-12-12
  • HashMap確定key的存儲位置的源碼分析

    HashMap確定key的存儲位置的源碼分析

    HashMap 作為 Java 中最常用的數(shù)據(jù)結(jié)構(gòu)之一,用于存儲和管理鍵值對,HashMap 基于哈希函數(shù)實現(xiàn),能通過將 key 映射到特定的位置來實現(xiàn)快速存儲、查找和刪除數(shù)據(jù),接下來將從源碼角度分析以通俗易懂的方式向大家講解一下 HashMap 如何確定 key 的存儲位置的
    2023-07-07
  • Spring框架中的跨域CORS配置的完整教學(xué)

    Spring框架中的跨域CORS配置的完整教學(xué)

    CORS(Cross-Origin?Resource?Sharing,跨域資源共享)是一種機制,允許在瀏覽器中向不同源(域名、協(xié)議或端口不同)的服務(wù)器發(fā)起請求,下面我們就來看看如何在Spring框架配置跨域CORS吧
    2025-10-10
  • spring注入配置文件屬性到j(luò)ava類

    spring注入配置文件屬性到j(luò)ava類

    這篇文章主要為大家介紹了spring注入配置文件屬性到j(luò)ava類實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Java利用Netty時間輪實現(xiàn)延時任務(wù)

    Java利用Netty時間輪實現(xiàn)延時任務(wù)

    時間輪是一種可以執(zhí)行定時任務(wù)的數(shù)據(jù)結(jié)構(gòu)和算法。本文將為大家詳細講解一下Java如何利用Netty時間輪算法實現(xiàn)延時任務(wù),感興趣的小伙伴可以了解一下
    2022-08-08
  • @FeignClient之name,value,url詳解

    @FeignClient之name,value,url詳解

    在FeignClient中,`name`用于指定服務(wù)的名稱,通常與服務(wù)注冊中心中的服務(wù)名關(guān)聯(lián),而`url`用于指定請求的基礎(chǔ)URL,適用于不使用服務(wù)注冊的場景,如果同時配置了`name`和`url`,則`url`會優(yōu)先生效,Feign會直接使用`url`指定的地址
    2024-11-11
  • Java Idea TranslationPlugin翻譯插件使用解析

    Java Idea TranslationPlugin翻譯插件使用解析

    這篇文章主要介紹了Java Idea TranslationPlugin翻譯插件使用解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-04-04

最新評論

石林| 永安市| 大名县| 千阳县| 宜黄县| 上林县| 定襄县| 哈尔滨市| 分宜县| 四川省| 合山市| 凯里市| 嘉鱼县| 湖南省| 金秀| 红桥区| 岑巩县| 靖安县| 磴口县| 盐源县| 七台河市| 环江| 宁波市| 镇原县| 武强县| 栖霞市| 滦南县| 镇江市| 兰州市| 青冈县| 堆龙德庆县| 太和县| 筠连县| 阿图什市| 普宁市| 桐乡市| 罗山县| 微博| 巴彦淖尔市| 宁远县| 云南省|