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

SpringBoot3使用devtools實(shí)現(xiàn)代碼熱部署的詳細(xì)步驟

 更新時間:2024年01月19日 11:23:28   作者:頑石九變  
Spring Boot DevTools是一組用于提高開發(fā)人員生產(chǎn)力,并加速Spring Boot應(yīng)用程序開發(fā)的工具,它提供了一些功能,可以幫助開發(fā)人員更快速地構(gòu)建應(yīng)用程序,并減少常見的開發(fā)問題,本文給大家介紹了SpringBoot3使用devtools實(shí)現(xiàn)代碼熱部署的詳細(xì)步驟,需要的朋友可以參考下

一、Spring Boot DevTools 簡介

Spring Boot DevTools是一組用于提高開發(fā)人員生產(chǎn)力,并加速Spring Boot應(yīng)用程序開發(fā)的工具。它提供了一些功能,可以幫助開發(fā)人員更快速地構(gòu)建應(yīng)用程序,并減少常見的開發(fā)問題。

Spring Boot DevTools的主要作用包括:

  1. 自動重新加載:當(dāng)應(yīng)用程序中的代碼發(fā)生變化時,DevTools會自動重新加載應(yīng)用程序,而無需手動重新啟動服務(wù)器。這可以節(jié)省大量時間,尤其是在開發(fā)過程中進(jìn)行代碼調(diào)試和迭代時。
  2. 實(shí)時監(jiān)控:DevTools提供了實(shí)時的應(yīng)用程序監(jiān)控功能,可以顯示應(yīng)用程序的運(yùn)行狀態(tài)、內(nèi)存使用情況、線程狀態(tài)等信息。這有助于開發(fā)人員快速了解應(yīng)用程序的狀態(tài)和性能,并及時發(fā)現(xiàn)和解決問題。
  3. 自動配置:DevTools可以根據(jù)開發(fā)環(huán)境自動配置應(yīng)用程序,如啟用H2數(shù)據(jù)庫控制臺、禁用安全等。這可以減少開發(fā)人員手動配置應(yīng)用程序的需求,并加快開發(fā)過程。
  4. 日志管理:DevTools提供了一個集中的日志管理功能,可以顯示應(yīng)用程序的日志信息,并在出現(xiàn)問題時提供更詳細(xì)的錯誤堆棧跟蹤。這有助于開發(fā)人員快速定位和解決問題。

二、使用步驟

  1. 創(chuàng)建一個新的Spring Boot項(xiàng)目,可以使用Spring Initializr或Maven/Gradle等構(gòu)建工具。
  2. 在項(xiàng)目的pom.xml文件中,添加Spring Boot DevTools的依賴項(xiàng):
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
</dependency>
  • 保存并關(guān)閉pom.xml文件。
  • 在IDE中導(dǎo)入項(xiàng)目,并啟動應(yīng)用程序。
  • 在應(yīng)用程序運(yùn)行時,DevTools將自動啟用。

現(xiàn)在,當(dāng)您在應(yīng)用程序的代碼中進(jìn)行更改時,DevTools將自動重新加載應(yīng)用程序,而無需手動重新啟動服務(wù)器。您還可以使用DevTools提供的實(shí)時監(jiān)控和日志管理功能來監(jiān)視應(yīng)用程序的狀態(tài)和性能,并快速定位和解決問題。

三、實(shí)時監(jiān)控

Spring Boot DevTools 提供了實(shí)時監(jiān)控功能,這對于開發(fā)和調(diào)試應(yīng)用程序來說非常有用。下面我將介紹如何使用 DevTools 的實(shí)時監(jiān)控功能。

1、使用 DevTools 的實(shí)時監(jiān)控功能

DevTools 的一個重要特性是自動重啟。當(dāng)你對代碼做出更改并保存時,應(yīng)用會自動重啟,這使得改動能夠快速生效。

以下是一個示例流程:

  1. 啟動應(yīng)用程序: 使用 IDE 或命令行啟動你的 Spring Boot 應(yīng)用。

  2. 修改代碼: 當(dāng)應(yīng)用運(yùn)行時,嘗試更改一些代碼。例如,修改一個控制器的返回值。

  3. 自動重啟: 保存更改后,DevTools 將檢測到這些更改并自動重新啟動應(yīng)用程序。這意味著你無需手動停止和重新啟動服務(wù)器。

  4. 查看更改: 在瀏覽器或測試工具中重新請求你更改的端點(diǎn),你應(yīng)該能看到新的更改已經(jīng)生效。

2、監(jiān)控靜態(tài)資源和視圖模板

DevTools 不僅可以監(jiān)控 Java 文件的更改,還可以監(jiān)控靜態(tài)資源(如 HTML、CSS、JavaScript 文件)和視圖模板的更改。對這些資源的更改通常無需重啟應(yīng)用程序,DevTools 會自動應(yīng)用這些更改。

3、其他實(shí)時監(jiān)控功能

除了自動重啟,DevTools 還提供了其他實(shí)用的實(shí)時監(jiān)控功能,如:

  • 實(shí)時應(yīng)用屬性重載: 在 application.properties 或 application.yml 文件中做出的更改可以在不重啟應(yīng)用的情況下自動生效。
  • 遠(yuǎn)程應(yīng)用監(jiān)控: DevTools 可以配置用于遠(yuǎn)程應(yīng)用,允許你監(jiān)控和調(diào)試部署在不同環(huán)境中的應(yīng)用程序。

4、注意事項(xiàng)

  • 性能影響: DevTools 主要用于開發(fā)環(huán)境,因?yàn)樗赡軙绊憫?yīng)用程序的性能。
  • 安全性: 確保不要在生產(chǎn)環(huán)境中部署 DevTools,因?yàn)樗赡艽蜷_一些不安全的端點(diǎn)。

通過使用 Spring Boot DevTools,你可以顯著提高開發(fā)效率,實(shí)現(xiàn)快速迭代和測試。這些實(shí)時監(jiān)控功能為開發(fā)人員提供了即時反饋,有助于快速發(fā)現(xiàn)并修復(fù)問題,同時也使得實(shí)驗(yàn)新想法變得更加容易。

四、默認(rèn)屬性配置

Spring Boot 支持的幾個庫使用緩存來提高性能。例如,模板引擎緩存編譯后的模板,以避免重復(fù)解析模板文件。此外,Spring MVC 在提供靜態(tài)資源時,可以在響應(yīng)中添加 HTTP 緩存頭。

雖然緩存對生產(chǎn)非常有益,但在開發(fā)過程中可能會適得其反,導(dǎo)致您無法看到剛剛在應(yīng)用程序中做出的更改。因此,spring-boot-tools 默認(rèn)禁用緩存選項(xiàng)。

緩存選項(xiàng)通常通過 application.properties 文件中的設(shè)置進(jìn)行配置。例如,Thymeleaf 提供了 spring.phrine.cache 屬性。spring-boot-tools 模塊會自動應(yīng)用合理的開發(fā)時配置,而不需要手動設(shè)置這些屬性。

下表列出了應(yīng)用的所有屬性:

名稱默認(rèn)值
server.error.include-binding-errorsalways
server.error.include-messagealways
server.error.include-stacktracealways
server.servlet.jsp.init-parameters.developmenttrue
server.servlet.session.persistenttrue
spring.docker.compose.readiness.waitonly-if-started
spring.freemarker.cachefalse
spring.graphql.graphiql.enabledtrue
spring.groovy.template.cachefalse
spring.h2.console.enabledtrue
spring.mustache.servlet.cachefalse
spring.mvc.log-resolved-exceptiontrue
spring.reactor.netty.shutdown-quiet-period0s
spring.template.provider.cachefalse
spring.thymeleaf.cachefalse
spring.web.resources.cache.period0
spring.web.resources.chain.cachefalse

注意:如果你不希望應(yīng)用屬性默認(rèn)值,可以在 application.properties 中將 spring.devtools.add-properties 設(shè)置為 false。

因?yàn)樵陂_發(fā) Spring MVC 和 Spring WebFlux 應(yīng)用程序時需要更多關(guān)于 Web 請求的信息,開發(fā)人員工具建議您為 Web 日志組啟用DEBUG日志記錄。這將為您提供有關(guān)傳入請求、處理它的處理程序、響應(yīng)結(jié)果和其他詳細(xì)信息的信息。如果您希望記錄所有請求詳細(xì)信息(包括潛在的敏感信息),您可以打開 spring.mvc.log-request-details 或 spring.codec.log-request-details 配置屬性。

五、LiveReload

spring-boot-tools模塊包含一個嵌入式LiveReload服務(wù)器,可以在資源更改時觸發(fā)瀏覽器刷新。LiveReload瀏覽器擴(kuò)展程序可免費(fèi)用于Chrome、Firefox和Safari。您可以在所選瀏覽器的市場或商店中搜索“LiveReload”來找到這些擴(kuò)展程序。

如果你不想在應(yīng)用程序運(yùn)行時啟動LiveReload服務(wù)器,你可以將spring.tools.livereload.enabled屬性設(shè)置為false。

注:一次只能運(yùn)行一個 LiveReload 服務(wù)器。在啟動應(yīng)用程序之前,請確保沒有其他 LiveReload 服務(wù)器正在運(yùn)行。如果從IDE啟動多個應(yīng)用程序,則只有第一個應(yīng)用程序具有 LiveReload 支持。

六、全局設(shè)置

你可以通過這個目錄下的文件 $HOME/.config/spring-boot 修改 devtools的全局配置

  • spring-boot-devtools.properties
  • spring-boot-devtools.yaml
  • spring-boot-devtools.yml

添加到這些文件的任何屬性都適用于您機(jī)器上使用 devtools 的所有 Spring Boot 應(yīng)用程序

默認(rèn)情況下,$HOME 是用戶的主目錄。要自定義此位置,請?jiān)O(shè)置 SPRING_DEVTOOLS_HOME 環(huán)境變量或 spring.tools.home 系統(tǒng)屬性。

如果在 $HOME/.config/spring-boot 中找不到 devtools 配置文件,則會搜索 $HOME 目錄的根目錄是否存在 .spring-boot-devtools.properties 文件。這允許您與不支持 $HOME/.config/spring-boot 位置的舊版本 Spring Boot 上的應(yīng)用程序共享 devtools 全局配置。

DevTools properties/yaml 文件中不支持 Profiles 配置。

七、遠(yuǎn)程應(yīng)用程序

Spring Boot DevTools不限于本地開發(fā)。您還可以在遠(yuǎn)程運(yùn)行應(yīng)用程序時使用多種功能。

遠(yuǎn)程支持是可選的,因?yàn)閱⒂盟赡軙戆踩L(fēng)險。它只應(yīng)在受信任的網(wǎng)絡(luò)上運(yùn)行或使用 SSL 進(jìn)行保護(hù)時啟用。如果這兩種選項(xiàng)都不可用,則不應(yīng)使用 DevTools 的遠(yuǎn)程支持。您永遠(yuǎn)不應(yīng)該在生產(chǎn)部署中啟用支持。

要啟用它,您需要確保 DevTools 包含在重新打包的存檔中,如下所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludeDevtools>false</excludeDevtools>
            </configuration>
        </plugin>
    </plugins>
</build>

然后,您需要設(shè)置 spring.devtools.remote.secret 屬性。與任何重要的密碼或秘密一樣,該值應(yīng)該是唯一且強(qiáng)壯的,這樣它就不能被猜測或暴力破解。

遠(yuǎn)程開發(fā)工具支持分為兩部分:接受連接的服務(wù)器端端點(diǎn)和在 IDE 中運(yùn)行的客戶端應(yīng)用程序。設(shè)置 spring.devtools.remote.secret 屬性時,服務(wù)器組件會自動啟用??蛻舳私M件必須手動啟動。

Spring WebFlux應(yīng)用程序不支持遠(yuǎn)程工具。

參考

以上就是SpringBoot3使用devtools實(shí)現(xiàn)代碼熱部署的詳細(xì)步驟的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot3 devtools代碼熱部署的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java繪制哆啦A夢 超可愛

    java繪制哆啦A夢 超可愛

    這篇文章主要介紹了java繪制哆啦A夢,特別的可愛,文中示例代碼介紹的也非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • SpringMVC和Ajax的交互詳解(手工處理)

    SpringMVC和Ajax的交互詳解(手工處理)

    Ajax即異步的?JavaScript和XML,是一種無需重新加載整個網(wǎng)頁的情況下,能夠更新部分模塊的網(wǎng)頁技術(shù),下面這篇文章主要給大家介紹了關(guān)于SpringMVC和Ajax交互的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Java面向?qū)ο蠡A(chǔ),類,變量,方法

    Java面向?qū)ο蠡A(chǔ),類,變量,方法

    這篇文章主要介紹了Java面向?qū)ο蠡A(chǔ),類,變量,方法,需要的朋友可以參考下
    2020-10-10
  • mybatis?log4j2打印sql+日志實(shí)例代碼

    mybatis?log4j2打印sql+日志實(shí)例代碼

    在學(xué)習(xí)mybatis的時候,如果用log4j2來協(xié)助查看調(diào)試信息,則會大大提高學(xué)習(xí)的效率,加快debug速度,下面這篇文章主要給大家介紹了關(guān)于mybatis?log4j2打印sql+日志的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Java讀取Oracle大字段數(shù)據(jù)(CLOB)的2種方法

    Java讀取Oracle大字段數(shù)據(jù)(CLOB)的2種方法

    這篇文章主要介紹了Java讀取Oracle大字段數(shù)據(jù)(CLOB)的2種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Spring Boot開箱即用可插拔實(shí)現(xiàn)過程演練與原理解析

    Spring Boot開箱即用可插拔實(shí)現(xiàn)過程演練與原理解析

    本文通過深入探討Spring Boot的背景歷史、業(yè)務(wù)場景、功能點(diǎn)以及底層原理,并通過Java代碼手寫模擬了Spring Boot的啟動過程和自動配置功能,為開發(fā)者提供了一個全面的理解,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Java 前臺加后臺精品圖書管理系統(tǒng)的實(shí)現(xiàn)

    Java 前臺加后臺精品圖書管理系統(tǒng)的實(shí)現(xiàn)

    相信每一個學(xué)生學(xué)編程的時候,應(yīng)該都會寫一個小項(xiàng)目——圖書管理系統(tǒng)。為什么這么說呢?我認(rèn)為一個學(xué)校的氛圍很大一部分可以從圖書館的氛圍看出來,而圖書管理系統(tǒng)這個不大不小的項(xiàng)目,接觸的多,也比較熟悉,不會有陌生感,能夠練手,又有些難度,所以我的小項(xiàng)目也來了
    2021-11-11
  • SpringBoot中的文件上傳與下載詳解

    SpringBoot中的文件上傳與下載詳解

    這篇文章主要介紹了SpringBoot中的文件上傳與下載詳解,springboot是spring家族中的一個全新框架,用來簡化spring程序的創(chuàng)建和開發(fā)過程,本文我們就一起來看看上傳與下載的操作,需要的朋友可以參考下
    2023-08-08
  • 詳解Java從后臺重定向(redirect)到另一個項(xiàng)目的方法

    詳解Java從后臺重定向(redirect)到另一個項(xiàng)目的方法

    這篇文章主要介紹了詳解Java從后臺重定向(redirect)到另一個項(xiàng)目的方法,非常具有實(shí)用價值,需要的朋友可以參考下
    2017-04-04
  • 基于OpenID?Connect及Token?Relay實(shí)現(xiàn)Spring?Cloud?Gateway

    基于OpenID?Connect及Token?Relay實(shí)現(xiàn)Spring?Cloud?Gateway

    這篇文章主要介紹了基于OpenID?Connect及Token?Relay實(shí)現(xiàn)Spring?Cloud?Gateway,Spring?Cloud?Gateway旨在提供一種簡單而有效的方式來路由到API,并為API提供跨領(lǐng)域的關(guān)注點(diǎn),如:安全性、監(jiān)控/指標(biāo)和彈性
    2022-06-06

最新評論

建平县| 贡觉县| 友谊县| 濮阳市| 宁南县| 进贤县| 砚山县| 北宁市| 广宁县| 宁晋县| 云安县| 平安县| 通化县| 利津县| 临桂县| 三亚市| 克什克腾旗| 贵定县| 当雄县| 同德县| 武陟县| 辽阳市| 比如县| 龙川县| 五华县| 浦县| 嘉义县| 丁青县| 北流市| 兰坪| 依安县| 旅游| 湖北省| 长泰县| 子长县| 松原市| 原阳县| 泗洪县| 庆阳市| 顺平县| 武川县|