<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          新功能介紹 || Spring Boot 2.5

          共 3467字,需瀏覽 7分鐘

           ·

          2021-04-25 09:31

          前言

          目前 Spring Boot 2.5.0 RC1 已經(jīng)發(fā)布,其開(kāi)發(fā)團(tuán)隊(duì)表示將在 5 月 20 日正式 GA。我們梳理了一下大家比較關(guān)系和感興趣的一些變更。

          一、 運(yùn)行端點(diǎn)變更

          1. Secure info endpoint(安全的 info 端點(diǎn))

          默認(rèn)情況下/info端點(diǎn)不再對(duì) web 公開(kāi)。此外,如果引用了 Spring Security,則默認(rèn)情況下端點(diǎn)需要經(jīng)過(guò)身份驗(yàn)證才能訪問(wèn)。

          1. 優(yōu)雅關(guān)機(jī)支持 GET 請(qǐng)求

          我們流量請(qǐng)求到此接口執(zhí)行業(yè)務(wù)邏輯的時(shí)候,若服務(wù)端此時(shí)執(zhí)行關(guān)機(jī) (kill),Spring boot 默認(rèn)情況會(huì)直接關(guān)閉容器(tomcat 等),導(dǎo)致此業(yè)務(wù)邏輯執(zhí)行失敗。在一些業(yè)務(wù)場(chǎng)景下:會(huì)出現(xiàn)數(shù)據(jù)不一致的情況,事務(wù)邏輯不會(huì)回滾。在 spring boot 2.3 版本,支持優(yōu)雅停機(jī)功能。關(guān)于優(yōu)雅停機(jī)可以參考筆者這篇文章Spring Boot 2.3 新特性優(yōu)雅停機(jī)詳解[1]

          1. 記錄停機(jī)日志

          通過(guò)以下屬性我們可以在 JVM 退出時(shí)候,記錄資源釋放日志等。

          logging.register-shutdown-hook
          1. 新增 Quartz 的 Actuator Endpoint

          Actuator 中新增了一個(gè) /quartz端點(diǎn)。它提供了有關(guān)Quartz作業(yè)和觸發(fā)器的詳細(xì)信息。

          • 訪問(wèn) /actuator/quartz
          $ curl 'http://localhost:8080/actuator/quartz' -i -X GET
          • 返回應(yīng)用配置的任務(wù)信息
          {
            "jobs" : {
              "groups" : [ "samples""tests" ]
            },
            "triggers" : {
              "groups" : [ "samples""DEFAULT" ]
            }
          }

          二、增強(qiáng)容器化功能

          1、War 包支持分層

          Spring Boot 的MavenGradle插件現(xiàn)在都允許您創(chuàng)建用于 Docker 的分層WARs。分層WARs的工作方式與 springboot 早期版本中提供的分層JAR支持類(lèi)似。查看 Gradle 和 Maven 參考文檔了解更多詳細(xì)信息。

          具體使用可以參考筆者的這篇文章?「Spring Boot 2.3 新特性」分層 JAR[2]

          2、Buildpack 支持配置自定義

          Spring Boot 2.4[2]基于 Buildpack 推出了自己的 docker 構(gòu)建工具 整合在原有的spring-boot-maven-plugin中,只需要配置對(duì)應(yīng)目標(biāo)倉(cāng)庫(kù)和主機(jī)信息即可完成鏡像構(gòu)建。具體使用可以參考筆者的這篇文章「Spring Boot 2.4 新特性」一鍵構(gòu)建 Docker 鏡像[3]

          spring boot 2.5 提供了更多的自定義能力,距離完全拋棄 Dockerfile 的日子更近了。

          mvn spring-boot:build-image

          三、Environment 前綴

          spring boot 可以為系統(tǒng)環(huán)境變量指定前綴,以便可以在同一環(huán)境中運(yùn)行多個(gè)不同的 Spring 引導(dǎo)應(yīng)用程序。使用SpringApplication.setEnvironmentPrefix(…)設(shè)置綁定屬性時(shí)要使用的前綴。

          例如,下面將添加myapp前綴:

          SpringApplication application = new SpringApplication(MyApp.class);
          application.setEnvironmentPrefix("myapp");
          application.run(args);

          現(xiàn)在,所有屬性都需要一個(gè)前綴版本。例如,要更改服務(wù)器端口

          server.port=8080  --> myapp.server.port=8080

          四、Metrics 增強(qiáng)


            1. Metrics for Spring Data Repositories

            1. @Timed Metrics with WebFlux

            1. MongoDB Metrics

          號(hào)外:mica 2.4.5 發(fā)布在即,全網(wǎng)唯一支持 druid 和 undertow 的 Metrics 指標(biāo)。

          五、HTTP/2 over TCP (h2c)

          現(xiàn)在,Spring boot 支持四個(gè)嵌入式 Web 容器都已經(jīng)支持基于 TCP(h2c)的 HTTP / 2 協(xié)議,無(wú)需進(jìn)行任何手動(dòng)自定義。如果要開(kāi)啟 h2c,只需將 server.http2.enabled 設(shè)置為 true,并將 server.ssl.enabled 設(shè)置為 false(默認(rèn) false)。

          當(dāng)然,微服務(wù)全棧 h2c 還需要打通 feign 和 RestTemplate 這種 http 客戶端,h2c 我們 19 年就開(kāi)始實(shí)踐,詳見(jiàn):spring-cloud-java11[4]

          目前 Spring cloud gateway 的 client 也已經(jīng)支持了 h2c 詳見(jiàn):

          reactor-netty/issues/639[5]

          spring-cloud-gateway/issues/7[6]

          六、數(shù)據(jù)源相關(guān)增強(qiáng)

          1. 多數(shù)據(jù)源監(jiān)控狀態(tài)檢測(cè)支持

          AbstractRoutingDataSource主要作用于 Spring 多數(shù)據(jù)源,health端點(diǎn)現(xiàn)在顯示目標(biāo)數(shù)據(jù)源的運(yùn)行狀況。每個(gè)目標(biāo)數(shù)據(jù)源都使用其路由 key 命名。與前面一樣,要忽略運(yùn)行狀況端點(diǎn)中的路由數(shù)據(jù)源

          management.health.db.ignore-routing-data-sources=true
          1. 數(shù)據(jù)源初始化腳本屬性變更

          低版本的 spring.datasource.init 現(xiàn)在統(tǒng)一變更為 spring.sql.init 。

           spring.datasource.init --> spring.sql.init

          當(dāng)然此屬性也可以適用 R2DBC 數(shù)據(jù)初始化。

          1. 數(shù)據(jù)初始化重構(gòu)

          為了支持schema.sql以及data.sql初始化,SpringBoot2.5 中進(jìn)行了重新設(shè)計(jì)。

          如果在同一個(gè)應(yīng)用程序中同時(shí)使用 JPA 和 springboot 的 SQL 腳本初始化,您可能會(huì)發(fā)現(xiàn) Springboot2.5 存在一個(gè)排序問(wèn)題。默認(rèn)情況下,我們先運(yùn)行schema.sql以及data.sql然后再進(jìn)行 JPA 初始化。如果希望在 JPA 初始化之后再運(yùn)行腳本,你可以添加下面的配置。

          spring.datasource.initialization-order=after-jpa

          最后

          本文參與的小伙伴:張亞?wèn)|(Jap 作者)、如夢(mèng)技術(shù)(mica 作者)、冷冷(pig 作者)

          歡迎大家投稿比較有深度、有意思的文章。

          參考資料

          [1]

          Spring Boot 2.3 新特性優(yōu)雅停機(jī)詳解: https://my.oschina.net/giegie/blog/4282378

          [2]

          分層 JAR: https://my.oschina.net/giegie/blog/4289643

          [3]

          一鍵構(gòu)建 Docker 鏡像: https://juejin.cn/post/6897007109813043207

          [4]

          spring-cloud-java11: https://gitee.com/596392912/spring-cloud-java11

          [5]

          reactor-netty/issues/639: https://github.com/reactor/reactor-netty/issues/639

          [6]

          spring-cloud-gateway/issues/7: https://github.com/spring-cloud/spring-cloud-gateway/issues/7


          瀏覽 121
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  香蕉视频亚洲 | 巨乳无码噜噜噜久久久 | 中文无码日本高潮喷水 | 国产精品无码污污污 | a 在线免费观看 |