国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【SpringBoot3】使用 devtools 實(shí)現(xiàn)代碼熱部署

這篇具有很好參考價(jià)值的文章主要介紹了【SpringBoot3】使用 devtools 實(shí)現(xiàn)代碼熱部署。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、Spring Boot DevTools 簡(jiǎn)介

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

Spring Boot DevTools的主要作用包括:

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

二、使用步驟

  1. 創(chuàng)建一個(gè)新的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>
  1. 保存并關(guān)閉pom.xml文件。
  2. 在IDE中導(dǎo)入項(xiàng)目,并啟動(dòng)應(yīng)用程序。
  3. 在應(yīng)用程序運(yùn)行時(shí),DevTools將自動(dòng)啟用。

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

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

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

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

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

以下是一個(gè)示例流程:

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

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

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

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

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

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

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

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

  • 實(shí)時(shí)應(yīng)用屬性重載:application.propertiesapplication.yml 文件中做出的更改可以在不重啟應(yīng)用的情況下自動(dò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)樗赡軙?huì)影響應(yīng)用程序的性能。
  • 安全性: 確保不要在生產(chǎn)環(huán)境中部署 DevTools,因?yàn)樗赡艽蜷_一些不安全的端點(diǎn)。

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

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

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

雖然緩存對(duì)生產(chǎn)非常有益,但在開發(fā)過程中可能會(huì)適得其反,導(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 模塊會(huì)自動(dòng)應(yīng)用合理的開發(fā)時(shí)配置,而不需要手動(dòng)設(shè)置這些屬性。

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

名稱 默認(rèn)值
server.error.include-binding-errors always
server.error.include-message always
server.error.include-stacktrace always
server.servlet.jsp.init-parameters.development true
server.servlet.session.persistent true
spring.docker.compose.readiness.wait only-if-started
spring.freemarker.cache false
spring.graphql.graphiql.enabled true
spring.groovy.template.cache false
spring.h2.console.enabled true
spring.mustache.servlet.cache false
spring.mvc.log-resolved-exception true
spring.reactor.netty.shutdown-quiet-period 0s
spring.template.provider.cache false
spring.thymeleaf.cache false
spring.web.resources.cache.period 0
spring.web.resources.chain.cache false

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

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

五、LiveReload

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

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

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

六、全局設(shè)置

你可以通過這個(gè)目錄下的文件 $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 是用戶的主目錄。要自定義此位置,請(qǐng)?jiān)O(shè)置 SPRING_DEVTOOLS_HOME 環(huán)境變量或 spring.tools.home 系統(tǒng)屬性。

如果在 $HOME/.config/spring-boot 中找不到 devtools 配置文件,則會(huì)搜索 $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)用程序時(shí)使用多種功能。

遠(yuǎn)程支持是可選的,因?yàn)閱⒂盟赡軙?huì)帶來安全風(fēng)險(xiǎn)。它只應(yīng)在受信任的網(wǎng)絡(luò)上運(yùn)行或使用 SSL 進(jìn)行保護(hù)時(shí)啟用。如果這兩種選項(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)壯的,這樣它就不能被猜測(cè)或暴力破解。

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

Spring WebFlux應(yīng)用程序不支持遠(yuǎn)程工具。文章來源地址http://www.zghlxwxcb.cn/news/detail-794800.html

參考

  • Developer Tools

到了這里,關(guān)于【SpringBoot3】使用 devtools 實(shí)現(xiàn)代碼熱部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • springboot3使用自定義注解+AOP+redis優(yōu)雅實(shí)現(xiàn)防重復(fù)提交

    springboot3使用自定義注解+AOP+redis優(yōu)雅實(shí)現(xiàn)防重復(fù)提交

    ? ??個(gè)人主頁(yè):? ? ?蒾酒 ?? 系列專欄 :《spring boot實(shí)戰(zhàn)》 ?? 山高路遠(yuǎn),行路漫漫,終有歸途 目錄 寫在前面 實(shí)現(xiàn)思路 實(shí)現(xiàn)步驟 1.定義防重復(fù)提交注解 2.編寫一個(gè)切面去發(fā)現(xiàn)該注解然后執(zhí)行防重復(fù)提交邏輯 3.測(cè)試 依賴條件 1.接口上標(biāo)記防重復(fù)提交注解 2.接口測(cè)試 寫在最

    2024年04月11日
    瀏覽(23)
  • springboot項(xiàng)目如何自動(dòng)重啟(使用Devtools檢測(cè)修改并自動(dòng)重啟springboot)

    springboot項(xiàng)目如何自動(dòng)重啟(使用Devtools檢測(cè)修改并自動(dòng)重啟springboot)

    1. 問題: 我們?cè)陧?xiàng)目開發(fā)階段,可能經(jīng)常會(huì)修改代碼,修改完后就要重啟Spring Boot。經(jīng)常手動(dòng)停止再啟動(dòng),比較麻煩。 所以我們引入一個(gè)Spring Boot提供的開發(fā)工具; 只要源碼或配置文件發(fā)生修改,Spring Boot應(yīng)用可以自動(dòng)重啟,這樣子我們做如下事情就會(huì)事半功倍: 修改類–保

    2024年02月14日
    瀏覽(20)
  • SpringBoot開發(fā)小技巧使用(DEBUG、啟動(dòng)圖標(biāo)修改、Lombok、devtools、Spring Initializr)

    SpringBoot開發(fā)小技巧使用(DEBUG、啟動(dòng)圖標(biāo)修改、Lombok、devtools、Spring Initializr)

    在resources/application.properties中添加如下,開啟DEBUG功能: 然后啟動(dòng)springboot應(yīng)用,就可以看到DEBUG的日志。Positive表示生效,Negative表示不生效。如下所示: 下載百度的logo到resouces目錄下,然后在resources/application.properties添加如下內(nèi)容: 最后啟動(dòng)springboot應(yīng)用。打印的日志如下,

    2024年02月15日
    瀏覽(18)
  • springboot3使用swagger文檔

    springboot3使用swagger文檔

    在pom.xml里面引入如下倆個(gè)依賴 然后啟動(dòng)項(xiàng)目,打開瀏覽器訪問?http://localhost:8080/swagger-ui.html 就可以看到生成的文檔了? 最后附上swagger2到open api的注解變化 ? ?

    2024年02月13日
    瀏覽(24)
  • springboot3 redis 實(shí)現(xiàn)分布式鎖

    分布式鎖介紹 分布式鎖是一種在分布式系統(tǒng)中用于控制不同節(jié)點(diǎn)上的進(jìn)程或線程對(duì)共享資源進(jìn)行互斥訪問的技術(shù)機(jī)制。 在分布式環(huán)境中,多個(gè)服務(wù)可能同時(shí)訪問和操作共享資源,如數(shù)據(jù)庫(kù)、文件系統(tǒng)等。為了保持?jǐn)?shù)據(jù)的一致性和完整性,需要確保在同一時(shí)刻只有一個(gè)服務(wù)能

    2024年04月16日
    瀏覽(23)
  • SpringBoot3集成Kafka優(yōu)雅實(shí)現(xiàn)信息消費(fèi)發(fā)送

    ???????首先,你的JDK是否已經(jīng)是8+了呢? ???????其次,你是否已經(jīng)用上SpringBoot3了呢? ???????最后,這次分享的是SpringBoot3下的kafka發(fā)信息與消費(fèi)信息。 ???????這次的場(chǎng)景是springboot3+多數(shù)據(jù)源的數(shù)據(jù)交換中心(數(shù)倉(cāng))需要消費(fèi)Kafka里的上游推送信息,這里做數(shù)據(jù)

    2024年02月02日
    瀏覽(29)
  • SpringBoot3整合SpringSecurity,實(shí)現(xiàn)自定義接口權(quán)限過濾

    SpringBoot3整合SpringSecurity,實(shí)現(xiàn)自定義接口權(quán)限過濾

    接口權(quán)限過濾是指對(duì)于某些接口或功能,系統(tǒng)通過設(shè)定一定的權(quán)限規(guī)則,只允許經(jīng)過身份認(rèn)證且擁有相應(yīng)權(quán)限的用戶或應(yīng)用程序進(jìn)行訪問和操作 。這種技術(shù)可以有效地保護(hù)系統(tǒng)資源和數(shù)據(jù)安全,防止未授權(quán)的用戶或程序進(jìn)行惡意操作或非法訪問。通常情況下,接口權(quán)限過濾需

    2024年02月08日
    瀏覽(24)
  • 基于Springboot3+微服務(wù)實(shí)現(xiàn)12306高性能售票系統(tǒng)

    基于Springboot3+微服務(wù)實(shí)現(xiàn)12306高性能售票系統(tǒng)

    ??博主介紹:全網(wǎng)CSDN特邀作者、博客專家、CSDN新星計(jì)劃導(dǎo)師、全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺(tái)優(yōu)質(zhì)作者。 專注于Java、小程序技術(shù)領(lǐng)域和畢業(yè)項(xiàng)目實(shí)戰(zhàn)?? ?Java、SSM+Vue、SpringBoot+Vue、NodeJS+Vue、微信小程序、Python、大數(shù)據(jù)、安卓。 你想要的我

    2024年02月20日
    瀏覽(100)
  • Springboot3.X整合Dubbo3.XSpringCloudAlibaba微服務(wù) 2022.0 + Springboot3.X 集成 Dubbo實(shí)現(xiàn)對(duì)外調(diào)用http內(nèi)部調(diào)用RPC

    近期自己新開了一套SpringCloud Alibaba微服務(wù)項(xiàng)目,接口使用了對(duì)外HTTP,內(nèi)部RPC的設(shè)計(jì),具體點(diǎn)說就是外部用戶或客戶端通過Nginx訪問到Gateway網(wǎng)關(guān)再分發(fā)到各個(gè)服務(wù),內(nèi)部各個(gè)服務(wù)之間統(tǒng)一使用Dubbo RPC進(jìn)行通信。下面是Springboot3.x集成Dubbo的分享: 1. 需要的關(guān)鍵依賴 2. 啟動(dòng)程序入

    2024年02月15日
    瀏覽(25)
  • springboot3整合consul實(shí)現(xiàn)服務(wù)注冊(cè)和配置管理快速入門

    springboot3整合consul實(shí)現(xiàn)服務(wù)注冊(cè)和配置管理快速入門

    服務(wù)注冊(cè): 配置管理: 注冊(cè)中心的比較: 在微服務(wù)的世界中,服務(wù)注冊(cè)是必不可少的?,F(xiàn)在比較流行的也就是Consul和Nacos,Zookeeper沒有管理界面,一般不建議使用,而Eureka已經(jīng)處于停更,并且本身就存在很多bug,一般不建議使用! 我之前寫過一篇spring boot整合nacos實(shí)現(xiàn)服務(wù)注

    2024年04月16日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包