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.
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:
spring:
cloud:
gateway:
routes:
- id: function-route
uri: function://myFunction
predicates:
- Path=/api/process/**
- id: stream-route
uri: stream://myStreamProcessor
predicates:
- Path=/api/stream/**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:
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: PT1SImportant 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:
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-webfluxSpring Cloud Config Enhancements
AWS S3 YAML Profile Support
Config Server can now read profile‑specific YAML files from S3:
spring:
cloud:
config:
server:
awss3:
bucket: my-config-bucket
region: us-west-2File structure example:
s3://my-config-bucket/
├── application.yaml
├── application-dev.yaml
├── application-prod.yaml
└── application-test.yamlSpring Cloud Kubernetes Updates
Combined Config Source Support
Kubernetes ConfigMap and Secret can now be used as combined configuration sources:
spring:
cloud:
kubernetes:
config:
sources:
- name: app-config
namespace: default
- name: db-secret
namespace: default
explicit-prefix: databaseConfiguration 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:
@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"));
}
}Configuration example:
resilience4j:
bulkhead:
instances:
external-service:
max-concurrent-calls: 10
max-wait-duration: 1000msSpring Cloud Netflix Improvements
Eureka Client Enhancements
Supports Apache HTTP Client 5 RequestConfig customization:
@Bean
public EurekaClientHttpRequestFactorySupplier customRequestFactorySupplier() {
return () -> {
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000)
.setSocketTimeout(10000)
.setConnectionRequestTimeout(3000)
.build();
return new HttpComponentsClientHttpRequestFactory(HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.build());
};
}Upgrade Guide
Prerequisites
Upgrade Spring Boot to 3.5.0
Java version : Ensure Java 17+
Upgrade Steps
1. Update BOM version
<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>2. Migrate Gateway module
<!-- 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>3. Migrate configuration properties
# 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.com4. Update security configuration
spring:
cloud:
gateway:
server:
webflux:
trusted-proxies: "10\\..*|192\\.168\\..*"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.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java Architecture Diary
Committed to sharing original, high‑quality technical articles; no fluff or promotional content.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
