<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    Spring Boot 3.3 正式發(fā)布,王炸級更新,應(yīng)用啟動速度直接起飛!

    共 4559字,需瀏覽 10分鐘

     ·

    2024-05-24 16:42

    點(diǎn)擊關(guān)注公眾號,Java 干貨及時(shí)推送
    推薦閱讀5 月,Java 崗位爆了

    大家好,我是R哥。

    最新消息,Spring Boot 一次性發(fā)布了 3 個(gè)版本:

    • 3.3.0
    • 3.2.6
    • 3.1.13

    Spring Boot 3.3 正式發(fā)布了,3.1.x 在前幾天也停止維護(hù)了。

    最新的支持版本如下:

    從路線圖可以看到每個(gè)版本的終止時(shí)間,每個(gè)版本的生命周期只有一年。

    Spring Boot 進(jìn)入了全新的 3.x 時(shí)代了,3.1.x 和 3.0.x 也相繼停止維護(hù)了,商業(yè)支持的版本也只有 2.7+ 了,2.6.x 以下的版本徹底退出歷史舞臺。。

    Spring Boot 3.3.0 新特性

    1、最低環(huán)境要求

    Spring Boot 3.0.0 開始支持并最低要求 Java 17,Spring Boot 3.1.5 開始支持 Java 21 了。

    對 Java 開發(fā)環(huán)境的要求對比表:

    Spring Boot JDK Spring Maven Gradle
    3.3.0 17 ~ 22 6.1.8+ 3.6.3+ 7.5+,8.x
    3.2.0 17 ~ 21 6.1.1+ 3.6.3+ 7.5+,8.x
    3.1.0 17 ~ 20 6.0.9+ 3.6.3+ 7.5+,8.x
    3.0.0 17 ~ 19 6.0.2+ 3.5+ 7.5+
    2.7.12 8 ~ 20 5.3.27+ 3.5+ 6.8.x, 6.9.x, 7.x, 8.x

    支持 Java 8 的最后一個(gè) Spring Boot 2.x 系列版本已經(jīng)退伍啦,Java 17 的新時(shí)代到來。

    如果你還停留在 Java 8 就 OUT 了,過去一兩年,Java 8 采用率腰斬,Java 17 暴漲 430%??!

    R哥制作的《Java 17 新特性實(shí)戰(zhàn)課》都可以報(bào)名學(xué)起來,好課不貴,199 元永久學(xué)習(xí),如后續(xù)出了 Java 21 及更多版本新內(nèi)容都能免費(fèi)更新。

    2、CDS 支持(可縮短啟動時(shí)間)

    什么是 CDS?


    CDS 全稱為:Class Data Sharing,即類數(shù)據(jù)共享,它是 JVM 的一項(xiàng)功能,它可以在多個(gè) JVM 之間共享類,從而幫助減少 Java 應(yīng)用程序的啟動時(shí)間和內(nèi)存占用。


    CDS 可以生成一個(gè)稱為共享類歸檔(Shared Class Archive)的文件,即 *.jsa 文件,該文件包含預(yù)處理的類元數(shù)據(jù),它會在 JVM 啟動時(shí)加載到內(nèi)存,以便 JVM 可以快速訪問這些類元數(shù)據(jù),而不需要在啟動時(shí)重新加載和解析這些類信息,從而大大減少了啟動時(shí)間。

    使用方式如下:

    $ java -Djarmode=tools -jar test-app.jar extract --destination application
    cd application
    $ java -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh -jar test-app.jar

    這里它便會創(chuàng)建一個(gè) application.jsa 文件,只要應(yīng)用程序未更新,就可以重復(fù)使用該文件。如果要使用緩存,需要在啟動應(yīng)用程序時(shí)添加一個(gè)額外的參數(shù):

    $ java -XX:SharedArchiveFile=application.jsa -jar test-app.jar

    有了這個(gè)特性支持,Spring Boot 應(yīng)用程序的啟動速度會大大提升,要直接起飛了。

    具體用法,后續(xù)會在我的《Spring Boot 核心技術(shù)課》中進(jìn)行更新。

    3、Websockets 支持虛擬線程

    Spring Boot 3.3.0 添加了 Websockets 對虛擬線程支持。插播一條:如果你近期準(zhǔn)備面試跳槽,點(diǎn)擊Java面試庫小程序刷題吧,共 2500+ 道,幾乎覆蓋了所有主流 Java 技術(shù)面試題。

    什么是虛擬線程?

    虛擬線程是一種成本低廉、輕量級的用戶模式的線程實(shí)現(xiàn),也就是傳說中的 “協(xié)程”,它可以充分利用可用硬件,大幅減少編寫、維護(hù)和監(jiān)測高并發(fā)應(yīng)用的工作量。


    我們都知道使用線程是要十分注意的,因?yàn)榫€程的創(chuàng)建、銷毀都十分消耗系統(tǒng)資源,所以有了線程池,但這還不夠,因?yàn)榫€程的數(shù)量是有限的,線程會阻塞操作系統(tǒng)線程,無法盡可能的提高吞吐量。


    因?yàn)槭褂镁€程的成本很高,所以才會有了虛擬線程,它是用戶態(tài)線程,成本是相當(dāng)?shù)土模{(diào)度也完全由用戶進(jìn)行控制(JDK 中的調(diào)度器),它同樣可以進(jìn)行阻塞,但不用阻塞操作系統(tǒng)線程,充分提高了硬件利用率,高并發(fā)也上了一個(gè)量級,從而實(shí)現(xiàn)了高吞吐量。

    Java 19 初次引入虛擬線程,在 Java 21 中正式轉(zhuǎn)正生產(chǎn)可用。

    Spring Boot 3.1.5 做了對 Java 21 的兼容,Spring Boot 3.2.0 正式可以支持 Java 21 中的虛擬線程了,只需要添加以下配置即可:

    spring.threads.virtual.enabled = true

    4、配置文件支持 Base64

    配置文件增強(qiáng)了,現(xiàn)在可以在 property 和 YAML 配置文件文件中將資源加載為 Base64 格式的值了,即使用 base64: 前綴將資源加載為 Base64 編碼的文本值,這對于 SSL 證書等資源非常有用。

    如下面配置示例:

    spring:
      ssl:
        bundle:
          pem:
            mybundle:
              keystore:
                certificate: "base64:Ts9tL8UYRUdJTi..."
                private-key: "base64:Yk1dIEF0dHJpYn..."

    5、支持 SBOMs

    支持 SBOMs,并添加了一個(gè) SBOM 端點(diǎn)。

    SBOM 全稱為:Software Bill of Materials,即軟件材料清單,它用于提供軟件組件的清單和詳細(xì)信息,包括其涉及到的開源和第三方依賴、庫、工具等。


    SBOM 的主要目的是提高軟件的透明度,幫助開發(fā)人員、安全團(tuán)隊(duì)理解軟件中包含的具體內(nèi)容,從而更好地管理安全風(fēng)險(xiǎn)、許可證合規(guī)性和依賴項(xiàng)的更新。

    6、其他

    1)可觀察性增強(qiáng)了,主要添加了對 Micrometer 的 @SpanTag 注解的支持,新增了一個(gè) InfoContributor 以及對 Prometheus 1.x 支持。

    2)Spring Security 增強(qiáng)了,主要添加了對 JwtAuthenticationConverter 的自動配置。

    3)服務(wù)連接支持增強(qiáng)了,主要添加了對Apache ActiveMQ Artemis 和 LDAP 的服務(wù)連接支持。

    4)容器鏡像增強(qiáng)了,主要添加了對 Docker Compose 對 Bitnami 容器鏡像的支持。

    5)大量 Spring 庫和第三方類庫都得到了更新,還有一些廢除項(xiàng)。

    總結(jié)

    Spring Boot 3.3 這個(gè)版本的變化還挺大的,很多功能都得到了增強(qiáng),做技術(shù)的真要時(shí)刻保持對新技術(shù)的渴望啊,不然都跟不上時(shí)代的步伐了。

    Spring Boot 最新最全的實(shí)戰(zhàn)代碼已上傳 Github:

    https://github.com/javastacks/spring-boot-best-practice

    如果你還沒用過 Spring Boot,這里推薦下我的《Spring Boot 核心技術(shù)課》,16 個(gè)模塊,幾乎涉及所有核心技術(shù),包括底層實(shí)現(xiàn)原理及代碼實(shí)戰(zhàn),知識點(diǎn)非常齊全,助你快速打通 Spring Boot 的各個(gè)環(huán)節(jié)。

    有需要的直接掃碼訂閱:

    一次訂閱,永久學(xué)習(xí),免費(fèi)更新。

    現(xiàn)在活動,訂閱本課程還贈送Java面試庫VIP 一年,已經(jīng)幫助許多小伙伴進(jìn)入大廠,價(jià)值過萬,訂閱后請?jiān)谥Ц锻瓿身撁媛?lián)系作者領(lǐng)取。

    好了,今天的分享就到這里了,后續(xù)R哥也會繼續(xù)關(guān)注并分享更多的 Spring Boot 資訊和干貨,關(guān)注公眾號Java技術(shù)棧第一時(shí)間推送。

    版權(quán)聲明: 本文系公眾號 "Java技術(shù)棧" 原創(chuàng),轉(zhuǎn)載、引用本文內(nèi)容請注明出處,抄襲、洗稿一律投訴侵權(quán),后果自負(fù),并保留追究其法律責(zé)任的權(quán)利。

    瀏覽 772
    2點(diǎn)贊
    評論
    收藏
    分享

    手機(jī)掃一掃分享

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

    手機(jī)掃一掃分享

    分享
    舉報(bào)

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    欧美乱三级 | 免费黄片在线 | 操B的网站 | 久久久国产91桃色一区二区三区 | 中文字幕手机在线视频 |