Backend Development 10 min read

What’s New in Spring Cloud 2025.0.0? Major Updates and Migration Guide

Spring Cloud 2025.0.0 "Northfields" was released on May 29, 2025, fully compatible with Spring Boot 3.5.0, bringing major enhancements to core microservice components, new Gateway features, Config AWS‑S3 support, Kubernetes config source integration, CircuitBreaker reactive isolation, Eureka client upgrades, and a detailed upgrade guide for developers.

Java Architecture Diary
Java Architecture Diary
Java Architecture Diary
What’s New in Spring Cloud 2025.0.0? Major Updates and Migration Guide

Version Compatibility

Spring Boot : 3.5.0

Release Codename : Northfields (alphabetical naming tradition)

Main Changes : Includes breaking changes; smooth upgrade not supported. See detailed article for specifics.

Spring Cloud Gateway Major Updates

New Features

1. Function & Stream Processor Integration

Gateway now natively supports

spring-cloud-function

and

spring-cloud-stream

processors:

<code>spring:
cloud:
  gateway:
    routes:
    - id: function-route
      uri: function://myFunction
      predicates:
        - Path=/api/process/**
    - id: stream-route
      uri: stream://myStreamProcessor
      predicates:
        - Path=/api/stream/**
</code>

Technical Advantages :

Supports functional programming model for request handling

Integrates message‑driven architectures (Kafka, RabbitMQ)

Simplifies Serverless and event‑driven implementations

2. Bucket4j Rate Limiter Support

WebFlux version adds Bucket4j token‑bucket algorithm support:

<code>spring:
cloud:
  gateway:
    server:
      webflux:
        routes:
        - id: rate-limited-route
          uri: http://backend-service
          filters:
            - name: Bucket4jRateLimit
              args:
                capacity: 100
                refill-rate: 10
                refill-period: PT1S
</code>

Important Deprecations

1. WebClientRouting Infrastructure

Status : Deprecated, will be removed in version 5.0

Impact : Routing logic depending on this infrastructure must be migrated

Recommendation : Use the standard routing mechanism provided by Gateway

2. Module and Starter Renaming

New naming conventions introduced to distinguish WebFlux and WebMVC server modes:

<code>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
</code>

Spring Cloud Config Enhancements

AWS S3 YAML Profile Support

Config Server can now read profile‑specific YAML files from S3:

<code>spring:
cloud:
  config:
    server:
      awss3:
        bucket: my-config-bucket
        region: us-west-2
</code>

File structure example:

<code>s3://my-config-bucket/
├── application.yaml
├── application-dev.yaml
├── application-prod.yaml
└── application-test.yaml
</code>

Spring Cloud Kubernetes Updates

Combined Config Source Support

Kubernetes ConfigMap and Secret can now be used as combined configuration sources:

<code>spring:
cloud:
  kubernetes:
    config:
      sources:
        - name: app-config
          namespace: default
        - name: db-secret
          namespace: default
          explicit-prefix: database
</code>

Configuration Priority

Command line arguments

System properties

Kubernetes ConfigMap/Secret

application.yaml

Default values

Spring Cloud Circuitbreaker New Features

Reactive Isolation Support

Added support for reactive programming model:

<code>@Component
public class ReactiveService {
    @Autowired
    private ReactiveCircuitBreakerFactory circuitBreakerFactory;

    public Mono<String> callExternalService() {
        return circuitBreakerFactory.create("external-service")
            .run(webClient.get().uri("/api/data").retrieve().bodyToMono(String.class),
                 throwable -> Mono.just("fallback-response"));
    }
}
</code>

Configuration example:

<code>resilience4j:
  bulkhead:
    instances:
      external-service:
        max-concurrent-calls: 10
        max-wait-duration: 1000ms
</code>

Spring Cloud Netflix Improvements

Eureka Client Enhancements

Supports Apache HTTP Client 5 RequestConfig customization:

<code>@Bean
public EurekaClientHttpRequestFactorySupplier customRequestFactorySupplier() {
    return () -> {
        RequestConfig requestConfig = RequestConfig.custom()
            .setConnectTimeout(5000)
            .setSocketTimeout(10000)
            .setConnectionRequestTimeout(3000)
            .build();
        return new HttpComponentsClientHttpRequestFactory(HttpClients.custom()
            .setDefaultRequestConfig(requestConfig)
            .build());
    };
}
</code>

Upgrade Guide

Prerequisites

Upgrade Spring Boot to 3.5.0

Java version : Ensure Java 17+

Upgrade Steps

1. Update BOM version

<code>&lt;dependencyManagement&gt;
  &lt;dependencies&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
      &lt;artifactId&gt;spring-cloud-dependencies&lt;/artifactId&gt;
      &lt;version&gt;2025.0.0&lt;/version&gt;
      &lt;type&gt;pom&lt;/type&gt;
      &lt;scope&gt;import&lt;/scope&gt;
    &lt;/dependency&gt;
  &lt;/dependencies&gt;
&lt;/dependencyManagement&gt;
</code>

2. Migrate Gateway module

<code><!-- Old dependency -->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!-- New dependency -->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-gateway-server-webflux</artifactId>
</dependency>
</code>

3. Migrate configuration properties

<code># Old configuration
spring:
  cloud:
    gateway:
      routes:
        - id: example
          uri: http://example.com

# New configuration
spring:
  cloud:
    gateway:
      server:
        webflux:
          routes:
            - id: example
              uri: http://example.com
</code>

4. Update security configuration

<code>spring:
  cloud:
    gateway:
      server:
        webflux:
          trusted-proxies: "10\\..*|192\\.168\\..*"
</code>

5. Spring Cloud Alibaba Compatibility Note

If your project uses Spring Cloud Alibaba components, be aware of log‑dependency conflicts between Spring Cloud 2025.0.0 and Spring Cloud Alibaba 2023.0.3, which may cause startup failures. Resolve by following the recommended conflict‑resolution steps.

dCnrLJ
dCnrLJ
backendMicroservicesSpring BootUpgradeSpring Cloud
Java Architecture Diary
Written by

Java Architecture Diary

Committed to sharing original, high‑quality technical articles; no fluff or promotional content.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.