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

springboot基于IDEA環(huán)境熱加載與熱部署教程

 更新時(shí)間:2022年03月17日 16:14:47   作者:字母哥博客  
這篇文章主要為大家介紹了springboot在IDEA環(huán)境下的熱加載與熱部署教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

在實(shí)際的開發(fā)過程中,我們經(jīng)常修改代碼之后,手動(dòng)的重啟項(xiàng)目,手動(dòng)刷新瀏覽器查看修改效果。那么有沒有一種方式能夠快速的、自動(dòng)的幫我們將修改代碼自動(dòng)更新,避免手動(dòng)重啟,從而提高開發(fā)效率呢?肯定是有的,但是對(duì)于這個(gè)功能很多人對(duì)功能的叫法有爭議,筆者查詢了維基百科、官方文檔,沒有得到合理的答案,也沒有權(quán)威的定義,筆者知道的就有:熱啟動(dòng)、熱加載、熱更新、熱部署、熱切換。這幾個(gè)詞從語義上是有區(qū)別的,但是叫什么并不重要,實(shí)現(xiàn)了最重要,畢竟絕大部分程序員為了使用這個(gè)功能方便開發(fā),也不是專業(yè)的搞學(xué)術(shù)研究的。

如果哪位朋友獲得了權(quán)威渠道的說法,可以將文檔連接反饋給我。我再理解一下,爭取做到學(xué)術(shù)研究級(jí)別的一絲不茍!在此之前筆者按照自己的想法和英文翻譯的角度去使用這些名詞。

一、使用Jrebel插件

這是最簡單的一種方式,但是有一定的個(gè)局限性,Jrebel插件是收費(fèi)的。雖然有破解方案,但是不建議!有需要的同學(xué)自行研究,這里就不多做介紹了。

Jrebel插件在有些Spring Boot版本不夠兼容,會(huì)報(bào)錯(cuò),越新的版本越容易報(bào)錯(cuò)。所以筆者目前還是選擇性放棄使用該方法!

第一步:安裝插件,按照箭頭所示選擇安裝。安裝完成之后,要重啟IDEA才能生效。

第二步:激活。在安裝完成之后,右上角會(huì)多出這樣幾個(gè)按鈕。點(diǎn)擊之后會(huì)提示你進(jìn)行插件激活,可以注冊(cè)碼激活,也可以在線激活。也可以填寫個(gè)人姓名、郵箱、電話之后獲取10天的試用!

第三步:更新操作觸發(fā)配置,這個(gè)配置不僅結(jié)合Jrebel使用有效,對(duì)于其他的方式實(shí)現(xiàn)開發(fā)過程中需要自動(dòng)更新的情況下,也要勾選上。

在Spring Boot項(xiàng)目啟動(dòng)配置中,選擇下圖中的紅色框中的內(nèi)容:uodate classes and resources on ‘update’ action

配置完成后,通過右上角的JR按鈕啟動(dòng)SpringBoot項(xiàng)目。就可以實(shí)現(xiàn)改動(dòng)代碼和資源的自動(dòng)更新。

二、 devtools實(shí)現(xiàn)熱加載

這是一種對(duì)于SpringBoot而言比較常見的一種實(shí)現(xiàn)方式。

1.1.引入devtools的maven依賴

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

spring-boot-devtools從名稱就可以看出來,是開發(fā)者工具包,其主要的功能就是實(shí)現(xiàn)熱加載。

其實(shí)現(xiàn)原理就是兩個(gè)ClassLoader,一個(gè)負(fù)責(zé)加載那些不會(huì)經(jīng)常改變的文件,比如:第三方j(luò)ar包,一旦引入項(xiàng)目之后這部分代碼在調(diào)試過程中就處于不變的狀態(tài);一個(gè)負(fù)責(zé)加載可能經(jīng)常改變的類,比如我們自己在項(xiàng)目中寫的代碼,被稱為restart ClassLoader。當(dāng)有代碼發(fā)生改變的時(shí)候,重建一個(gè)restart ClassLoader,原有的restart ClassLoader被丟掉。由于每次重新加載的內(nèi)容較少,所以速度比手動(dòng)重啟更快一些。

1.2.設(shè)置IDEA

首先,運(yùn)行時(shí)編譯配置:組合鍵:“Shift+Ctrl+Alt+/” ,選擇 “Registry” ,選中打勾 “compiler.automake.allow.when.app.running” 。

其次,自動(dòng)化編譯配置: “File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,選中打勾 “Make project automatically” 。這是一種重新自動(dòng)化的編譯整體項(xiàng)目的方法。但是筆者一般不這么做,因?yàn)镮DEA的文件是自動(dòng)保存的,你想修改一個(gè)字符串,有可能你只修改完成第一個(gè)字符它就重新編譯了,重新加載啟動(dòng)。所以,筆者一般代碼修改完成之后,使用Ctrl + F9快捷鍵對(duì)修改類重新編譯,而不是做項(xiàng)目的自動(dòng)化編譯。

  • 最后,在一些相對(duì)舊的IDEA版本上運(yùn)行時(shí)配置,按如下圖形勾選。(新版本IDEA已經(jīng)不需要了)

1.3.修改一下application.properties配置

在比較新的Spring Boot devtools版本中我們已經(jīng)不需要做如下的配置了,但是如果你以上的步驟都完成了,仍然無法實(shí)現(xiàn)代碼更改之后的熱加載,請(qǐng)參考下面的方法。在有些版本我們需要配置熱加載生效的開關(guān),使其值等于true。

下文是properties格式配置,喜歡yml格式的同學(xué)可以自行調(diào)整一下。默認(rèn)情況下,支持熱加載的目錄如下,如果需要其它目錄下文件支持熱加載需要手動(dòng)配置:

/META-INF/maven

/META-INF/resources

/resources

/static

/public

/templates

#熱加載生效
spring.devtools.restart.enabled=true
#額外新增的熱加載目錄
spring.devtools.restart.additional-paths= src/main/java
#熱加載排除目錄
#spring.devtools.restart.exclude= 

1.4.LiveReload插件

最后建議你去chrome 瀏覽器插件商店安裝一個(gè)插件叫做LiveReload。

Spring devtools默認(rèn)會(huì)啟動(dòng)一個(gè) Live Reload Server實(shí)例,監(jiān)聽文件的變化。并實(shí)時(shí)的與瀏覽器插件通信,更新瀏覽器展示界面。這樣,你就不用每次更改內(nèi)容之后都點(diǎn)擊瀏覽器刷新按鈕了。

1.5.最后測(cè)試一下

改一下代碼,看看會(huì)不會(huì)生效。通常不生效的原因有兩種:

  • JDK編譯版本和運(yùn)行版本不統(tǒng)一,自行學(xué)習(xí)一下IDEA環(huán)境下JDK配置
  • 瀏覽器緩存或者其他的緩存軟件導(dǎo)致的問題

以上就是springboot在IDEA環(huán)境下的熱加載與熱部署教程的詳細(xì)內(nèi)容,更多關(guān)于springboot在IDEA環(huán)境下熱加載部署教程的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java基礎(chǔ)之內(nèi)存泄漏與溢出詳解

    Java基礎(chǔ)之內(nèi)存泄漏與溢出詳解

    今天帶大家來了解一下Java內(nèi)存泄漏與溢出的知識(shí),文中有非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)Java基礎(chǔ)的各位小伙伴呢很有幫助喲,需要的朋友可以參考下
    2021-05-05
  • 微服務(wù)SpringBoot整合Jasypt加密工具的場(chǎng)景分析

    微服務(wù)SpringBoot整合Jasypt加密工具的場(chǎng)景分析

    Jasypt是Java加密工具包,能支持對(duì)密碼的哈希加密,對(duì)文本和二進(jìn)制數(shù)據(jù)的對(duì)稱加解密,還能集成SpringBoot項(xiàng)目對(duì)配置文件中的密鑰進(jìn)行加密存儲(chǔ),這篇文章主要介紹了微服務(wù)SpringBoot整合Jasypt加密工具,需要的朋友可以參考下
    2022-10-10
  • MyBatis3源碼解析之如何獲取數(shù)據(jù)源詳解

    MyBatis3源碼解析之如何獲取數(shù)據(jù)源詳解

    用myBatis3與spring整合的時(shí)候,我們可以通過多種方式獲取數(shù)據(jù)源,下面這篇文章主要給大家介紹了關(guān)于MyBatis3源碼解析之如何獲取數(shù)據(jù)源的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Eclipse中maven異常Updating Maven Project的統(tǒng)一解決方案

    Eclipse中maven異常Updating Maven Project的統(tǒng)一解決方案

    今天小編就為大家分享一篇關(guān)于Eclipse中maven異常Updating Maven Project的統(tǒng)一解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • SpringBoot單元測(cè)試沒有執(zhí)行的按鈕問題及解決

    SpringBoot單元測(cè)試沒有執(zhí)行的按鈕問題及解決

    這篇文章主要介紹了SpringBoot單元測(cè)試沒有執(zhí)行的按鈕問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java實(shí)現(xiàn)單源最短路徑

    java實(shí)現(xiàn)單源最短路徑

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)單源最短路徑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • java中File類的使用方法

    java中File類的使用方法

    本篇文章介紹了,在java中File類的使用方法。需要的朋友參考下
    2013-04-04
  • Java 對(duì)HashMap進(jìn)行排序的三種常見方法

    Java 對(duì)HashMap進(jìn)行排序的三種常見方法

    這篇文章主要介紹了Java 對(duì)HashMap進(jìn)行排序的三種常見方法,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-10-10
  • SpringBoot整合Sa-Token實(shí)現(xiàn)登錄認(rèn)證的示例代碼

    SpringBoot整合Sa-Token實(shí)現(xiàn)登錄認(rèn)證的示例代碼

    本文主要介紹了SpringBoot整合Sa-Token實(shí)現(xiàn)登錄認(rèn)證的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • spring入門教程之bean的繼承與自動(dòng)裝配詳解

    spring入門教程之bean的繼承與自動(dòng)裝配詳解

    眾所周知Spring里面的bean就類似是定義的一個(gè)組件,而這個(gè)組件的作用就是實(shí)現(xiàn)某個(gè)功能的,下面這篇文章主要給大家介紹了關(guān)于spring入門教程之bean繼承與自動(dòng)裝配的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11

最新評(píng)論