Spring Boot 2.7.0 更新說明
Spring Boot 又接連發布了三個版本:
- Spring Boot 2.7.0(最新)
- Spring Boot 2.6.8
- Spring Boot 2.5.14
後面兩個版本都是修復 bug 版本, 2.7.0 才是硬菜,畢竟等了大半年。。
老規矩,棧長重點來解讀下 Spring Boot 2.7.0 都更新了什麼鬼!
Spring Boot 2.7 新特性
自動配置變更(重要)
自動配置註冊檔案
自動配置註冊有了一個比較大的調整,之前都是寫在下面 檔案中的:
META-INF/spring.factories
現在改名了:
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
另外格式也變了,Spring Boot 2.7 中直接每一行是一個自動配置類:
編寫格式確實是比之前方便多了,但檔名確實也太長了,比較難記。。。
需要注意的是:
為了向後相容,META-INF/spring.factories 雖然現在被標識廢棄了,但現在仍然可以使用,後續可能被徹底刪除,建議使用新的規範。
java 專案 fhadmin.cn
新註解(@AutoConfiguration)
新增了一個自動配置註解
@AutoConfiguration
,用來代替之前的
,用於標識新自動配置註冊檔案中的頂級自動配置類,由
@AutoConfiguration
註解巢狀、匯入進來的其他配置類可以繼續使用
註解。
另外,為方便起見,
@AutoConfiguration
註解還支援
after
,
afterNames
,
before
和
beforeNames
屬性進行自動配置排序,用於代替之前的
@AutoConfigureAfter
和
@AutoConfigureBefore
註解。
這個註解可以說更加細分了吧,自動配置專用註解,用專門的註解來幹專門的事,這樣也可以用來區分用
@Configuration
標識的普通配置類。
支援 GraphQL
GraphQL = Graph + QL(Query Language),它是一種用於 API 的基於圖表化的查詢語言:
Spring for GraphQL(1.0) 如今正式釋出了,Spring Boot 2.7.0 也整合了對 GraphQL 的自動配置、指標支援等,Starter 名為:
spring-boot-starter-graphql
,Spring 大家族又新增一員。
支援 Podman
Podman 和 Docker 一樣,是現在比較火熱的容器引擎。
現在使用 Cloud Native Buildpacks 構建映像時,Maven 和 Gradle 外掛就可以使用 Podman 容器引擎進行構建了,可用來代替 Docker 容器引擎。
牛逼啊,Podman 現在被 Spring Boot 官方支援了。
支援 RabbitStreamTemplate
現在支援自動配置 RabbitStreamTemplate,只需要配置以下引數:
spring.rabbitmq.stream.name = xxx
同時還新增了一個
RabbitStreamTemplateConfigurer
配置類來進行自定義擴充套件其他例項。
支援 Hazelcast
Hazelcast 和 Redis 一樣,它是一款開源的分散式記憶體資料庫,可用作分散式快取。
Hazelcast 自動配置嵌入式伺服器現在預設使用了
SpringManagerContext
,可以在 Hazelcast 例項物件中注入 Spring Bean 了。另外,還引入了
HazelcastConfigCustomizer
回撥介面,可用於進一步調整 Hazelcast 伺服器配置。
支援 Cache2k
Cache2k 是一個開源的輕量級、高效能 Java 記憶體快取庫。
現在新增了
Cache2k
的依賴項管理和自動配置,也可以通過定義一個
Cache2kBuilderCustomizer
例項 Bean 來自定義預設快取設定。
Web Server SSL 增強
嵌入式 Web 伺服器 SSL 配置增強了,可以配置帶有 PEM 編碼證照和私鑰檔案的 SSL。
使用以下引數進行配置:
- server.ssl.certificate
- server.ssl.certificate-private-key
- server.ssl.trust-certificate(可選)
- server.ssl.trust-certificate-private-key(可選)
另外,也可以使用類似的
management.server.ssl.*
屬性來保護管理端點。
info 端點增強
作業系統資訊
現在
/info
端點支援暴露應用程式執行時的一些作業系統資訊:
{ "os": { "name": "Linux", "version": "5.4.0-1051-gke", "arch": "amd64" }}
不過預設是禁用的,有需要的可以手動開啟:
management.info.os.enabled = true
Java 供應商資訊
現在
/info
端點中的 Java 供應商新增了供應商版本資訊:
{ "java": { "vendor": { "name": "Eclipse Adoptium", "version": "Temurin-17.0.1+12" }, "..."}
需要注意的是:
並非所有供應商都公開
java.vendor.version
系統屬性,所以,獲取版本屬性時可能為空。
單元測試加強
新增了
@DataCouchbaseTest
和
DataElasticsearchTest
註解,可用於測試使用了 Spring Data Couchbase 和 Spring Data Elasticsearch 的應用程式。
最新支援版本
棧長整理了 Spring Boot 的最新版本支援情況:
版本 | 釋出時間 | 停止維護時間 | 停止商業支援 |
---|---|---|---|
2.7.0 | 2022-05-19 | 2023-05-18 | 2024-08-22 |
2.6.0 | 2021-12-17 | 2022-11-24 | 2024-02-24 |
2.5.x | 2021-05-20 | 已停止 | 2023-08-24 |
2.4.x | 2020-11-12 | 已停止 | 2023-02-23 |
2.3.x | 2020-05-15 | 已停止 | 2022-08-20 |
2.2.x | 2019-10-16 | 已停止 | 已停止 |
2.1.x | 2018-10-10 | 已停止 | 已停止 |
2.0.x | 2018-03-01 | 已停止 | 已停止 |
1.5.x | 2017-01-30 | 已停止 | 已停止 |
大部分版本要麼停止維護,或者僅提供商業支援,隨著 2.7 的釋出,現在連 Spring Boot 2.5 也停止維護了:
能用的也就 Spring Boot 2.6 及以上的版本了,並且,Spring Boot 2.6.0 在今年 11/24 也會停止維護。。
總結
Spring Boot 2.7.0 新增了不少新特性,變化真的還挺大的,特別是自動配置的變更,有明顯調整,大家要特別注意。
Spring Boot 現在已經成為了實事上的腳手架框架了,讓學習和開發變得更簡單,同時這版本的淘汰節奏也讓我感覺技術更新實在太快了,所以我們也要不斷保持學習,不然也會跟著淘汰。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31558068/viewspace-2895674/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備忘錄一:Spring Boot HikariCP 配置說明Spring Boot
- openssh版本更新與說明 openssl版本更新與說明
- Spring Boot 2.7.0釋出,2.5停止維護,節奏太快了吧Spring Boot
- Spring配置說明Spring
- 一個吃貨來說明Spring Boot與Spring cloud 是什麼關係Spring BootCloud
- Spring Boot 3.0.0 M3、2.7.0釋出,2.5.x將停止維護Spring Boot
- Spring Autowired(required = false) 說明SpringUIFalse
- spring中的IOC說明Spring
- 最新流程引擎 flowable 6.7.2 更新說明
- Spring配置項解釋說明Spring
- spring aop expression簡單說明SpringExpress
- JiaoZiVideoPlayer使用說明(持續更新中...)IDE
- 華為分析5.3.1版本更新說明
- Oracle 更新 OPatch 工具版本 的方法 說明Oracle
- Spring原始碼系列:註解說明Spring原始碼
- Spring的@Qualifier註解使用說明Spring
- Spring BcryptPasswordEncorder Log Rounds引數說明Spring
- JDK21來了!附重要更新說明JDK
- Flowable - 6.6.0 更新說明 (主流工作流引擎)
- Excelize 2.7.0 釋出, 2023 年首個更新Excelize
- 說說如何在 Spring Boot 中使用 JdbcTemplate 讀寫資料Spring BootJDBC
- DevExpress v16.1更新說明(VCL篇)devExpress
- Spring Boot 2.1.0 已釋出,7 個重大更新!Spring Boot
- Spring Boot初學改錯合集(持續更新)Spring Boot
- Linux下/etc/default/boot檔案欄位說明(轉)Linuxboot
- Android Studio 真正國內SDK線上更新說明Android
- Spring Boot:Spring Boot配置MybatisSpring BootMyBatis
- Spring Boot + JPA實現MySQL批量更新原始碼 - githubSpring BootMySql原始碼Github
- SpringBoot魔法堂:說說帶智慧提示的spring-boot-starterSpring Boot
- MySql Binlog 說明 & Canal 整合MySql的更新異常說明 & MySql Binlog 常用命令彙總MySql
- 掘金開源庫產品近期更新說明(11-15)
- 【TcaplusDB知識庫】條件過濾說明與更新
- Spring Boot (十三): Spring Boot 小技巧Spring Boot
- 8、使用 Spring Boot 搭建的一個 Spring MVC 示例(持續更新中)Spring BootMVC
- SYSAUX 說明UX
- 使用說明
- Spring Boot:Spring Boot配置SwaggerSpring BootSwagger
- Spring Boot 2.0(八):Spring Boot 整合 MemcachedSpring Boot