javascript
springboot2稳定版本_Spring Boot 2.4 正式发布,重大调整
大家周末愉快啊,Spring Boot 2.3.5 沒(méi)發(fā)布幾天,你看,還是 1 周前發(fā)布的:
昨天又有粉絲留言說(shuō) Spring Boot 2.4.0 已經(jīng)發(fā)布了:
我了個(gè)去,棧長(zhǎng)趕緊跑到 Spring Boot 官網(wǎng)看了下,果然 2.4.0 了,我頓時(shí)傻眼了,又得寫(xiě)文章了,看來(lái)我消息還是稍微有點(diǎn)滯后了…
Spring Boot 2.4.0 這么快就發(fā)布了,又是周末來(lái)給大家推送,我印象中都是周末推……
Spring Boot 更新也太快了,很多同學(xué)表示學(xué)不來(lái)了,學(xué)不動(dòng)了。學(xué)不動(dòng)也要學(xué)啊,不然就要被淘汰了,Java技術(shù)棧所有 Spring Boot 教程和示例源碼都上傳到 Github 了,歡迎 Star:
https://github.com/javastacks/spring-boot-best-practice
好吧,還是例行公事,接下來(lái)?xiàng)iL(zhǎng)帶大家來(lái)解讀下 Spring Boot 2.4.0 到底更新了什么鬼?
切記!!!
這個(gè)版本不要輕易升級(jí)!!!
下面注意仔細(xì)看完哦。。。
一、支持 Java 15
Spring Boot 2.4.0 支持 Java 15 了,同時(shí)向下兼容 Java 11 和 Java 8。
二、依賴(lài)升級(jí)
Spring Boot 2.4.0 升級(jí)了一些主要的 Spring 項(xiàng)目:
- Spring AMQP 2.3
- Spring Batch 4.3
- Spring Data 2020.0
- Spring Framework 5.3
- Spring HATEOAS 1.2
- Spring Integration 5.4
- Spring Kafka 2.6
- Spring Retry 1.3
- Spring Security 5.4
- Spring Session 2020.0
另外,還盡可能升級(jí)了一些第三方庫(kù)到最新穩(wěn)定版本:
- Artemis 2.13
- AssertJ 3.18
- Cassandra Driver 4.7
- Elasticsearch 7.9
- Flyway 7
- Jersey 2.31
- JUnit 5.7
- Liquibase 3.10
- Lettuce 6.0
- Micrometer 1.6
- Mockito 3.4
- MongoDB 4.1
- Oracle Database 19.7
- Reactor 2020.0
- RSocket 1.1
- Undertow 2.2
- ……
三、配置改進(jìn)
1、改進(jìn)配置文件的處理方式
Spring Boot 2.4 改進(jìn)了處理 application.properties 和 application.yml 配置文件的方式。更新后的邏輯旨在簡(jiǎn)化和合理化外部配置的加載方式,但有些參數(shù)的組合形式卻得到了限制,升級(jí)請(qǐng)謹(jǐn)慎。
如果你的應(yīng)用工程只有一個(gè)簡(jiǎn)單的 application.properties 或 application.yml 文件,則可以進(jìn)行無(wú)縫升級(jí)到 Spring Boot 2.4.0。
但是,如果你的配置較為復(fù)雜,比如說(shuō)有指定 profile 的參數(shù),或者有基于 profile 激活的參數(shù),要使用新功能就需要進(jìn)行一些更改。
更多細(xì)節(jié)可參考:
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Config-Data-Migration-Guide
如果你想繼續(xù)使用 Spring Boot 2.3 的配置邏輯,也可以通過(guò)在 application.properties 或者 application.yml 配置文件中添加以下參數(shù):
spring.config.use-legacy-processing = true
2、導(dǎo)入配置參數(shù)改進(jìn)
通過(guò)配置參數(shù) spring.config.location 和 spring.config.import 來(lái)指定或者導(dǎo)入配置文件時(shí),如果配置文件不存在,現(xiàn)在不是只能默默地失敗了,可以通過(guò)添加 optional: 前綴來(lái)標(biāo)識(shí)它是可選的。
比如我們從 /etc/config/application.properties 指定配置文件,如果這個(gè)文件不存在,系統(tǒng)就會(huì)跳過(guò)它。
spring.config.location=optional:/etc/config/application.properties
如果你想將所有指定的配置文件都默認(rèn)為可選的,可以通過(guò) SpringApplication.setDefaultProperties(…) 來(lái)設(shè)置
spring.config.on-location-not-found=ignore 這個(gè)參數(shù),或者將它設(shè)置在系統(tǒng)環(huán)境變量中。
3、支持導(dǎo)入配置樹(shù)
新版本的 spring.config.import 屬性還可以用于導(dǎo)入配置樹(shù),通過(guò)與 Kubernetes 一起使用,配置樹(shù)是提供鍵/值對(duì)的另一種方法,每一個(gè)鍵值/對(duì)都在其自己的文件中聲明,文件名是鍵,文件內(nèi)容就是值。
另外,從配置樹(shù)導(dǎo)入的參數(shù)默認(rèn)會(huì)帶一個(gè)換行符。
詳細(xì)的參考:
https://docs.spring.io/spring-boot/docs/2.4.0/reference/html/spring-boot-features.html#boot-features-external-config-files-configtree
具體的配置上的細(xì)節(jié)暫時(shí)沒(méi)有時(shí)間詳細(xì)研究了,后面有機(jī)會(huì)再詳細(xì)介紹一篇,關(guān)注Java技術(shù)棧第一時(shí)間推送。
四、新增啟動(dòng)端點(diǎn)
Spring Boot 2.4.0 添加了一個(gè)新的啟動(dòng)端點(diǎn),用來(lái)顯示應(yīng)用啟動(dòng)有關(guān)的詳細(xì)信息,比如可以幫助我們來(lái)診斷啟動(dòng)時(shí)間比預(yù)期更長(zhǎng)的 Spring Beans。
這個(gè)功能建立在 Spring Framwork 5.3 最近添加的應(yīng)用程序啟動(dòng)跟蹤特性的基礎(chǔ)上,感興趣的可以在 Spring 框架文檔中閱讀有關(guān)該功能的更多信息。
https://docs.spring.io/spring-framework/docs/5.3.x/reference/html/core.html#context-functionality-startup
五、新增起源鏈(Origin Chains)
Origin 接口更新了,使用了全新的 getParent() 方法,這樣就可以提供完整的參數(shù)起源鏈,以準(zhǔn)確顯示某一項(xiàng)參數(shù)的來(lái)源。
比如你在 application.properties 配置文件中使用 spring.config.import 來(lái)導(dǎo)入第二個(gè)配置文件的參數(shù),從第二個(gè)配置文件加載的參數(shù)的 Origin 將具有一個(gè)指向原始導(dǎo)入聲明的父級(jí)。
說(shuō)白了就是可以看到參數(shù)從哪里導(dǎo)進(jìn)來(lái)的,可以通過(guò) actuator/env 或者 actuator/configprops 端點(diǎn)來(lái)查看與之相關(guān)的輸出信息,這里暫不詳細(xì)研究了,后面有機(jī)會(huì)再詳細(xì)介紹一篇,關(guān)注Java技術(shù)棧第一時(shí)間推送。
六、Docker 支持升級(jí)
1、鏡像發(fā)布
Spring Boot Maven 插件的 spring-boot:build-image 指令和 Gradle 插件的 bootBuildImage 任務(wù)現(xiàn)在可以直接發(fā)布 Docker 鏡像到 Docker 注冊(cè)中心了。
2、授權(quán)機(jī)制
當(dāng)使用 Spring Boot 構(gòu)建時(shí),可以為構(gòu)建器或者運(yùn)行鏡像使用私有授權(quán)的 Docker 私有注冊(cè)中心,支持用戶(hù)名/密碼認(rèn)證以及基于 Token 機(jī)制認(rèn)證。
更多詳細(xì)的配置可以參考對(duì)應(yīng)的插件文檔:
Maven:
https://docs.spring.io/spring-boot/docs/2.4.0/maven-plugin/reference/htmlsingle/#build-image-example-publish
Gradle:
https://docs.spring.io/spring-boot/docs/2.4.0/gradle-plugin/reference/htmlsingle/#build-image-example-publish
七、移除了 JUnit 5’s Vintage 引擎
Spring Boot 2.4.0 從 spring-boot-starter-test 中移除了 JUnit 5 Vintage 引擎,JUnit 5 可以通過(guò) vintage 引擎來(lái)運(yùn)行 JUnit 4 編寫(xiě)的測(cè)試用例,說(shuō)白了就是兼容 JUnit 4 唄。
如果你不想遷移測(cè)試用例到 JUnit 5 而繼續(xù)使用 JUnit 4,添加以下 Maven 依賴(lài)即可:
org.junit.vintage junit-vintage-engine testorg.hamcrest hamcrest-core以下為對(duì)應(yīng)的 Gradle 配置:
testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core"}八、其他更新
Spring Boot 2.4.0 發(fā)布更新說(shuō)明中還包括了許多其他的更新和改進(jìn),比如說(shuō)在 Spring Boot 2.4.0 中標(biāo)識(shí)了在下個(gè)版本中計(jì)劃廢棄的不推薦使用的類(lèi)和方法等。
以上就是 Spring Boot 2.4.0 的主要變更內(nèi)容,當(dāng)然還有許多發(fā)布細(xì)節(jié),感興趣的可以研究下這個(gè)更新說(shuō)明:
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.4-Release-Notes
總結(jié)
終于寫(xiě)完了,又肝了一個(gè)晚上!!
可以看出 Spring Boot 2.4.0 的變更還是蠻大的,特別是在配置文件、配置參數(shù)的處理,還有許多框架的重大版本升級(jí)。
切記不要輕易升級(jí)到這個(gè)版本,如需升級(jí),最好是詳細(xì)看清楚變更內(nèi)容,做好充分測(cè)試,以免年終獎(jiǎng)沒(méi)了。。
關(guān)于更多的細(xì)節(jié)暫時(shí)沒(méi)時(shí)間深入研究了,后續(xù)棧長(zhǎng)有時(shí)間再深入研究下,給大家?guī)?lái)更詳細(xì)的技術(shù)文章,點(diǎn)擊最下面的了解更多鏈接關(guān)注Java技術(shù)棧第一時(shí)間推送。
最后,大家覺(jué)得本文有用的話(huà),動(dòng)動(dòng)小手,給棧長(zhǎng)來(lái)個(gè)小小的在贊、轉(zhuǎn)發(fā)唄,原創(chuàng)不易,需要你的鼓勵(lì)哦~
版權(quán)申明:本文系 “Java技術(shù)棧” 原創(chuàng),原創(chuàng)實(shí)屬不易,轉(zhuǎn)載、引用本文內(nèi)容請(qǐng)注明出處,禁止抄襲、洗稿,請(qǐng)自重,尊重他人勞動(dòng)成果和知識(shí)產(chǎn)權(quán)。
總結(jié)
以上是生活随笔為你收集整理的springboot2稳定版本_Spring Boot 2.4 正式发布,重大调整的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: jrebel热部署不起作用_5种Spri
- 下一篇: python如何安装pip3_如何在安装