偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

驚!Spring Boot 4 將棄用 Undertow,Tomcat 要笑了?

開發(fā) 前端
Spring Boot 4.0 的更新,堪稱一次“生態(tài)大洗牌”。Undertow 的退出 讓很多依賴它的團(tuán)隊(duì)需要重新思考架構(gòu)選型,短期內(nèi) Tomcat 與 Jetty 仍會(huì)是主要內(nèi)嵌容器。而長(zhǎng)遠(yuǎn)來看,如果 Undertow 能盡快跟進(jìn) Servlet 6.1 規(guī)范,或許未來會(huì)有“回歸”的機(jī)會(huì)。

前幾天,Spring Boot 發(fā)布了 4.0.0 M2 里程碑版本,引發(fā)了不少社區(qū)討論。對(duì)于開發(fā)者來說,這不僅僅是一次版本更新,而是一次“生態(tài)方向”的重大調(diào)整。尤其是 Undertow 被移除 這一決定,讓不少已經(jīng)在生產(chǎn)環(huán)境中使用 Undertow 的團(tuán)隊(duì)瞬間警覺。

很多企業(yè)此前選擇 替換內(nèi)嵌 Tomcat 為 Undertow,原因在于 Undertow 的 低內(nèi)存占用、天然持久連接支持、以及 高并發(fā)吞吐量更優(yōu) 等特點(diǎn)。然而,這次 Spring Boot 直接宣布 4.0 不再支持 Undertow,一時(shí)間讓開發(fā)者們感到有點(diǎn)“猝不及防”。

說到底,這背后并不是 Spring 團(tuán)隊(duì)的武斷,而是 Undertow 自身未跟進(jìn) Servlet 6.1 的規(guī)范,加上 Red Hat 的投入有限,導(dǎo)致 Spring Boot 無法繼續(xù)維護(hù)兼容層。換句話說,如果未來 Undertow 能夠更新到支持 Servlet 6.1,那么 Spring Boot 仍有可能恢復(fù)支持。

本文將帶你梳理 Spring Boot 4 的主要變更、移除特性、新功能亮點(diǎn),以及依賴升級(jí),讓你對(duì)未來的遷移與升級(jí)心中有數(shù)。

重要變更與移除

  1. 移除 Undertow 支持
  • Spring Boot 4.0 基于 Servlet 6.1,但 Undertow 目前未適配該規(guī)范,因此官方徹底移除了 Undertow 的內(nèi)嵌支持。
  • 這意味著未來 Spring Boot 項(xiàng)目默認(rèn)仍將以內(nèi)嵌 Tomcat 或 Jetty 作為主要選擇。
  1. Actuator 注解變更
  • javax.annotations.NonNull 與 org.springframework.lang.Nullable 不再適用于 Actuator 端點(diǎn)參數(shù)。
  • 推薦替換為:OptionalParameter 或 org.jspecify.annotations.Nullable。
  1. Elasticsearch 客戶端更新
  • 舊的 RestClient 自動(dòng)配置已棄用,替換為 Rest5Client。
  • 對(duì)應(yīng)的 RestClientBuilderCustomizer 也需要更換為 Rest5ClientBuilderCustomizer。
  1. Kafka Streams 調(diào)整
  • Spring Boot 移除了 StreamBuilderFactoryBeanCustomizer,改為依賴 Spring Kafka 的 StreamsBuilderFactoryBeanConfigurer。
  1. 構(gòu)建工具最低要求
  • Gradle 需升級(jí)至 8.14+ 或直接使用 9.x。

新功能與亮點(diǎn)

  1. Gradle 9 支持
  • Spring Boot 4 原生支持 Gradle 9,同時(shí)兼容 Gradle 8.14 及以上版本。
  1. OpenTelemetry Starter
    示例配置路徑:
src/main/resources/application.yml
  • 新增 spring-boot-starter-opentelemetry,用于接入 OTLP 指標(biāo)與追蹤,開箱即用。
  1. API 版本控制
  • Spring MVC 與 Spring WebFlux 新增 API 版本控制的自動(dòng)配置,便于在接口演進(jìn)時(shí)平滑管理不同版本。
  1. @HttpServiceClient 注解
  • 標(biāo)注 @org.springframework.web.service.registry.HttpServiceClient 的接口會(huì)自動(dòng)注冊(cè)為 Bean,簡(jiǎn)化遠(yuǎn)程調(diào)用配置。
  1. JSpecify 可空性注解
  • Spring Boot 引入了 JSpecify 的可空性注解,對(duì) Kotlin 與空值檢測(cè)器有更好支持。
  1. autoconfigure-classic 模塊
  • 新增 spring-boot-autoconfigure-classic,提供與 Spring Boot 3 類似的體驗(yàn),減少模塊間依賴沖突。
  1. 可觀測(cè)性模塊重命名
  • 包括 spring-boot-metricsspring-boot-observation、spring-boot-tracing,統(tǒng)一了包名與模塊劃分。

依賴升級(jí)

Spring Boot 4.0.0 M2 對(duì)多個(gè)依賴進(jìn)行了更新,主要包括:

  • Spring Framework 7.0.0-M8
  • Spring Data 2025.1.0-M5
  • Spring Security 7.0.0-M2
  • Micrometer 1.16.0-M2
  • Hibernate 7.1
  • Jackson 2.20 (rc)
  • Jetty 12.1

其他優(yōu)化

  1. 日志改進(jìn)
  • Logback 默認(rèn)字符集統(tǒng)一為 UTF-8(與 Log4j2 保持一致)。
  • 新增配置 logging.console.enabled=false 可禁用控制臺(tái)日志輸出。
  1. 虛擬線程支持
  • 當(dāng) spring.threads.virtual.enabled=true 時(shí),基于 JDK HttpClient 的自動(dòng)配置 HTTP 客戶端將自動(dòng)使用 虛擬線程,提升并發(fā)處理能力。

結(jié)論

Spring Boot 4.0 的更新,堪稱一次“生態(tài)大洗牌”。Undertow 的退出 讓很多依賴它的團(tuán)隊(duì)需要重新思考架構(gòu)選型,短期內(nèi) Tomcat 與 Jetty 仍會(huì)是主要內(nèi)嵌容器。而長(zhǎng)遠(yuǎn)來看,如果 Undertow 能盡快跟進(jìn) Servlet 6.1 規(guī)范,或許未來會(huì)有“回歸”的機(jī)會(huì)。

與此同時(shí),Spring Boot 4 帶來了 更強(qiáng)的可觀測(cè)性支持(OpenTelemetry)、API 版本控制、以及 Gradle 9 的適配,這些都體現(xiàn)了它在云原生與現(xiàn)代化開發(fā)方向的演進(jìn)。

開發(fā)者需要關(guān)注的不僅是 Undertow 的移除,更要在升級(jí)過程中,做好 依賴遷移 與 構(gòu)建工具升級(jí),以確保項(xiàng)目能夠順利過渡。

更多詳細(xì)信息可以查看官方發(fā)布說明:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0.0-M2-Release-Notes

責(zé)任編輯:武曉燕 來源: 路條編程
相關(guān)推薦

2024-07-15 10:45:51

2020-12-03 18:29:30

KubernetesDocker容器

2024-08-29 08:43:56

2025-04-02 09:31:33

2021-06-04 05:21:19

KubernetesDocker容器

2011-03-23 09:40:37

Google GearChrome

2022-04-08 16:14:21

FedoraBIOS32 位操作系統(tǒng)

2020-08-24 12:15:51

TomcatUndertow容器

2025-10-29 02:11:00

2019-01-18 12:05:44

MongoDB紅帽開源

2022-02-22 14:07:07

框架配置類Spring

2025-06-16 09:33:08

2024-05-17 10:10:59

Web容器Undertow

2022-06-14 11:01:48

SpringBootTomcatUndertow

2018-12-18 10:07:41

Spring Boot服務(wù)器HTTP2

2009-06-30 13:54:10

微軟MSNQQ

2023-12-25 09:45:54

代碼Java

2025-03-26 03:00:00

2024-10-17 14:14:29

2024-09-30 10:11:04

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)