Spring Cloud 2025.0.0(代号 Northfields)已发布

Spring Cloud 2025.0.0 于 2025-05-29 正式发布。你可以在 Maven Central 中找到该版本。你可以查看 2025.0.0 发布说明 了解更多信息。

2025.0.0 中的显要变化

此版本兼容 Spring Boot 3.5.0。点击 此处 查看该版本中的所有问题和 PR。以下是 GA 发布前所有里程碑的亮点。

Spring Cloud Gateway

  • 添加对 spring-cloud-function 和 spring-cloud-stream handler 的支持 #3646

  • 在服务器 webflux 中添加对 Bucket4jRateLimiter 的支持 #2955

  • 弃用 WebClientRouting 基础架构。这将在今年晚些时候的 5.0 中删除 #3680

  • 创建了新的模块和 Starter 名称,旧名称已被弃用。#3645 的下表列出了新的和废弃的构件。这些新名称明确了网关的两种样式(Server 或 Proxy Exchange)以及 Spring 的两种 Web 技术栈(Web MCV 和 WebFlux)。使用过时的工件将在日志中添加警告信息。

    已废弃 Artifact 新的 Artifact
    spring-cloud-gateway-server spring-cloud-gateway-server-webflux
    spring-cloud-gateway-server-mvc spring-cloud-gateway-server-webmvc
    spring-cloud-starter-gateway-server spring-cloud-starter-gateway-server-webflux
    spring-cloud-starter-gateway-server-mvc spring-cloud-starter-gateway-server-webmvc
    spring-cloud-gateway-mvc spring-cloud-gateway-proxyexchange-webmvc
    spring-cloud-gateway-webflux spring-cloud-gateway-proxyexchange-webflux
  • 迁移到新的属性前缀,以匹配新的模块名称:#3361#3362#3363#3647。使用 spring-boot-properties-migrator 支持已废弃的前缀。下表列出了模块或 Starter、其旧前缀和新替换前缀。

    模块/Starter 废弃的前缀 新的前缀
    spring-cloud-starter-gateway-server-webflux spring.cloud.gateway.* spring.cloud.gateway.server.webflux.*
    spring-cloud-starter-gateway-server-webmvc spring.cloud.gateway.mvc.* spring.cloud.gateway.server.webmvc.*
    spring-cloud-gateway-proxyexchange-webflux spring.cloud.gateway.proxy.* spring.cloud.gateway.proxy-exchange.webflux.*
    spring-cloud-gateway-proxyexchange-webmvc spring.cloud.gateway.proxy.* spring.cloud.gateway.proxy-exchange.webmvc.*
  • 修复版本默认禁用 X-Forwarded-*Forwarded Header 功能。如果需要 X-Forwarded-*Forwarded Header 功能,请将 spring.cloud.gateway.server.webflux.trusted-proxies 设置为 Java 正则表达式,指定你信任的代理 Header。如果你使用的是 Spring Cloud Gateway Server MVC(仅适用于 4.1.x 以后版本),请设置 spring.cloud.gateway.mvc.trusted-proxies。例如 Spring Cloud Gateway Server:

    spring.cloud.gateway.server.webflux.trusted-proxies=10\.0\.0\..*
    

    例如,对于 Spring Cloud Gateway Server WebMVC:

    spring.cloud.gateway.server.webmvc.trusted-proxies=10\.0\.0\..*
    

Spring Cloud Config

支持 AWS S3 Bucket 中的 YAML 特定 Profile(#2825)。

Spring Cloud Kubernetes

  • 将 Kubernetes 作为复合配置源 #1873
  • 重大变更 升级至 Fabric8 7.3.1 #1923

Spring Cloud Circuitbreaker

  • 增加了对 reactive bulkhead 的支持 #231

Spring Cloud Netflix

  • 允许在 EurekaClientHttpRequestFactorySupplier 中自定义 Apache HTTP Client 5 RequestConfig #4391

作为 2025.0.0 的一部分,更新了以下模块:

模块 版本 Issues
Spring Cloud Config 4.3.0 (issues)
Spring Cloud Build 4.3.0 (issues)
Spring Cloud Openfeign 4.3.0 (issues)
Spring Cloud Stream 4.3.0 (issues)
Spring Cloud Netflix 4.3.0 (issues)
Spring Cloud Commons 4.3.0 (issues)
Spring Cloud Circuitbreaker 3.3.0 (issues)
Spring Cloud Contract 4.3.0 (issues)
Spring Cloud Consul 4.3.0 (issues)
Spring Cloud Gateway 4.3.0 (issues)
Spring Cloud Vault 4.3.0 (issues)
Spring Cloud Starter Build 2025.0.0 (issues)
Spring Cloud Function 4.3.0 (issues)
Spring Cloud Task 3.3.0 (issues)
Spring Cloud Kubernetes 3.3.0 (issues)
Spring Cloud Bus 4.3.0 (issues)
Spring Cloud Zookeeper 4.3.0 (issues)

一如既往,我们欢迎在 GitHubGitterStack OverflowX 上提出反馈意见。


Maven 初始配置(仅依赖管理):

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2025.0.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    ...
</dependencies>

或者 Gradle:

plugins {
  id 'java'
  id 'org.springframework.boot' version '3.5.0'
  id 'io.spring.dependency-management' version '1.1.7'
}

//...

ext {
  set('springCloudVersion', "2025.0.0")
}

dependencies {
  implementation 'org.springframework.cloud:spring-cloud-starter-config'
  implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
  //...
}

dependencyManagement {
  imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
  }
}

//...

Ref:https://spring.io/blog/2025/05/29/spring-cloud-2025-0-0-is-abvailable