亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

一、使用Jrebel插件

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

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

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

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

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

在Spring Boot項目啟動配置中,選擇下圖中的紅色框中的內容:uodate classes and resources on ‘update’ action

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

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

這是一種對于SpringBoot而言比較常見的一種實現(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ā)者工具包,其主要的功能就是實現(xiàn)熱加載。

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

1.2.設置IDEA

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

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

  • 最后,在一些相對舊的IDEA版本上運行時配置,按如下圖形勾選。(新版本IDEA已經不需要了)

1.3.修改一下application.properties配置

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

下文是properties格式配置,喜歡yml格式的同學可以自行調整一下。默認情況下,支持熱加載的目錄如下,如果需要其它目錄下文件支持熱加載需要手動配置:

/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 瀏覽器插件商店安裝一個插件叫做LiveReload。

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

1.5.最后測試一下

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

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

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

相關文章

  • Java基礎之內存泄漏與溢出詳解

    Java基礎之內存泄漏與溢出詳解

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

    微服務SpringBoot整合Jasypt加密工具的場景分析

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

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

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

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

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

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

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

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

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

    java中File類的使用方法

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

    Java 對HashMap進行排序的三種常見方法

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

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

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

    spring入門教程之bean的繼承與自動裝配詳解

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

最新評論