Spring Framework 7 and Spring Boot 4 Offer API Versioning, Resilience, and Null-Safety Annotations

# Spring Framework 7.0 & Spring Boot 4.0 — November 2025 Release Overview

Broadcom has released:
- **[Spring Framework 7.0](https://spring.io/projects/spring-framework)** ([announcement](https://spring.io/blog/2025/11/13/spring-framework-7-0-general-availability))
- **[Spring Boot 4.0](https://spring.io/projects/spring-boot)** ([announcement](https://spring.io/blog/2025/11/20/spring-boot-4-0-0-available-now))

## Key Highlights
- **First-class REST API versioning**
- **JSpecify annotations** for standardized null safety
- **Built-in resilience features** (`@Retryable`, `@ConcurrencyLimit`)
- **Jackson 3 migration** for JSON handling
- **Modularized auto-configuration** in Spring Boot
- **JDK 17 baseline retained**, full adoption of [JDK 25](https://www.infoq.com/news/2025/09/java25-released)
- Jakarta EE 11 & Kotlin 2.2 as new baselines

---

## REST API Versioning in Spring

The new [API versioning](https://spring.io/blog/2025/09/16/api-versioning-in-spring) works in **Spring MVC** and **Spring WebFlux**, supporting:
- Path-based versioning
- Header-based versioning
- Query parameter versioning
- Media type versioning

**Controller Example:**

@GetMapping(url = "/accounts/{id}", version = "1.1")


Built-in **RFC 9745 compliant deprecation handling** is included.

Core components:
- **ApiVersionStrategy**
- **ApiVersionInserter**
- **RestTestClient** (non-reactive, new in 7.0)
- **WebTestClient**

---

## Null Safety Standardization

Spring Framework 7 completes migration to standardized **[JSpecify](https://spring.io/blog/2025/11/12/null-safe-applications-with-spring-boot-4/)** annotations.

### Benefits
- Full coverage for standard types, generics, arrays, and varargs
- **Kotlin 2** interprets JSpecify annotations automatically
- **IntelliJ IDEA 2025.3** offers improved data-flow null analysis
- Build-time null checking via [NullAway](https://github.com/uber/NullAway/blob/master/README.md) (requires JDK 21)

---

## Built-in Resilience Features
Based on **[Spring Retry](https://github.com/spring-projects/spring-retry/blob/main/README.md)**:

- **`@Retryable`** with reactive support, exponential back-off, and jitter
- **`@ConcurrencyLimit`** for fine-grained concurrency control, especially useful with [Virtual Threads](https://www.infoq.com/articles/java-virtual-threads/)

---

## Jackson 3 Migration

[Details](https://spring.io/blog/2025/10/07/introducing-jackson-3-support-in-spring)
- Package change: `com.fasterxml.jackson` → `tools.jackson`
- **`JsonMapper`** replaces **`ObjectMapper`** (immutable, format-specific mappers)
- Defaults:
  - `MapperFeature.SORT_PROPERTIES_ALPHABETICALLY` → `true`
  - `DateTimeFeature.WRITE_DATES_AS_TIMESTAMPS` → `false`
- Jackson 2 can still be used, or run alongside Jackson 3

---

## Modularized Auto-Configuration in Spring Boot 4

[Details](https://spring.io/blog/2025/10/28/modularizing-spring-boot/)
- Separate modules replace monolithic autoconfigure JARs:
  - e.g., `spring-boot-starter-webmvc` & `spring-boot-starter-webmvc-test`
- Reduces application footprint & improves IDE auto-completion relevance

---

## JDK, Jakarta EE & ORM Changes

- JDK 17 baseline retained (per [Juergen Hoeller](https://www.infoq.com/news/2024/11/spring-6-2-spring-boot-3-4))
- Full adoption of [JDK 25 features](https://javaalmanac.io/features)
- Jakarta EE baseline upgraded to [version 11](https://www.infoq.com/articles/jakarta-ee-11-overview)
  - Servlet 6.1, WebSocket 2.2, Validation 3.1, Persistence 3.2
- Hibernate ORM 7.1 support; detached entity reassociation disallowed
- Undertow unsupported (incompatibility with Servlet 6.1)

---

## HTTP Client Improvements

[HTTP Interface Groups](https://spring.io/blog/2025/09/30/the-state-of-http-clients-in-spring)
- Configure multiple HTTP Interface Clients sharing the same `RestClient`
- **Spring Framework 7.1**: `RestTemplate` deprecated
- **Spring Framework 8**: `RestTemplate` removed

[HTTP Service Client Enhancements](https://spring.io/blog/2025/09/23/http-service-client-enhancements)
- New `HttpServiceProxyRegistry` abstraction layer
- Configurable HTTP client for service groups (`HttpServiceGroupConfigurer`)
- Updated `HttpStatus` with latest codes

---

## Additional Features & Deprecations

- **Gradle 9** support
- Spring Security 7: [Multi-factor authentication](https://spring.io/blog/2025/10/21/multi-factor-authentication-in-spring-security-7)
- Improved Kotlin Serialization (`spring-boot-kotlin-serialization` starter)
- Fluent [`JmsClient`](https://docs.spring.io/spring-framework/docs/7.0.0/javadoc-api/org/springframework/jms/core/JmsClient.html)
- Spring Kafka 4 ([Share Consumer](https://spring.io/blog/2025/10/14/introducing-spring-kafka-share-consumer) support)
- Multiple `TaskDecorator` beans supported
- `AntPathMatcher` deprecated in favor of `PathPattern`
- Removal of Spring Boot 3.x deprecated APIs
- `javax.annotation` / `javax.inject` replaced with `jakarta.annotation` / `jakarta.inject`

---

## Performance & DevOps Improvements

- Idle application contexts pause in tests to save memory
- GraalVM Native Image: single-file reachability metadata
- Spring Data: build-time query compilation
- MongoDB health indicators independent of Spring Data MongoDB
- [OTLP metrics/traces export starter](https://spring.io/blog/2025/11/18/opentelemetry-with-spring-boot)
- SSL Health: `expiringChains` entry for near-expiry certificates

---

## Upgraded Dependencies

Includes:
- Kotlin 2.2.20
- Tomcat 11.0, Jetty 12.1
- GraphQL 24, Kafka 4.1.0
- Elasticsearch Client 9.1
- Hibernate Validator 9.0
- Commons Lang3 3.19.0
- Liquibase 5.0, Flyway 11.11
- MongoDB 5.6.0
- Mockito 5.20
- TestContainers 2.0

---

## Coordinated Ecosystem Releases

- [Spring Cloud 2025.1.0](https://spring.io/blog/2025/11/13/spring-cloud-2025-1-0-RC1-aka-oakwood-has-been-released)
- [Spring for GraphQL 2.0](https://spring.io/blog/2025/11/18/spring-for-graphql-2-0-0-goes-ga)
- [Spring Shell 4.0.0](https://spring.io/blog/2025/10/24/spring-shell-4-0-0-m1-released)
- [Spring REST Docs 4.0](https://spring.io/blog/2025/11/19/spring-restdocs-4)
- [Spring Security 7.0](https://spring.io/blog/2025/11/17/spring-security-releases)
- [Spring Data 2025.1.1.0](https://spring.io/blog/2025/11/14/spring-data-2025-1-goes-ga)
- [Spring Session 4.0.0](https://github.com/spring-projects/spring-session/releases/tag/4.0.0)
- [Spring Integration 7.0](https://spring.io/blog/2025/11/19/spring-integration-7-0-0-released)
- [Spring Batch 6.0](https://spring.io/blog/2025/11/19/spring-batch-6-0-0-ga)
- [Spring AMQP 4.0](https://spring.io/blog/2025/11/19/spring-amqp-4-0-0-available)
- [Spring Kafka 4.0](https://spring.io/blog/2025/11/18/spring-kafka-4)
- [Spring Pulsar 2.0](https://spring.io/blog/2025/11/17/spring-for-apache-pulsar-1-2-12-and-2-0-0-are-now-available)
- [Spring Web Services 5.0](https://spring.io/blog/2025/11/18/spring-ws-5-0-0-available-now)
- [Spring Vault 4.0](https://spring.io/blog/2025/11/18/spring-vault-4-0-goes-ga)
- [Spring Modulith 2.0](https://spring.io/blog/2025/10/27/spring-modulith-2-0-rc1-1-4-4-and-1-3-10-released)

---

## Migration & Support Timelines

- **[Spring Boot 4 Migration Guide](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide#review-deprecations-from-spring-boot-3x)**
- Spring Boot 3.5: updates until **June 2026** (paid support until 2032)
- Detailed release notes:
  - [Spring Framework 7](https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-7.0-Release-Notes)
  - [Spring Boot 4](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Release-Notes)

---

## AI-Assisted Content Publishing (Optional)

For teams creating content around these updates:  
**[AiToEarn](https://aitoearn.ai/)** is an **open-source AI content monetization platform** integrating:
- AI content generation
- Cross-platform publishing (Douyin, Kwai, WeChat, Bilibili, Rednote, Facebook, Instagram, LinkedIn, Threads, YouTube, Pinterest, X/Twitter)
- Analytics and model ranking

More info:
- [AiToEarn官网](https://aitoearn.ai/)
- [AiToEarn博客](https://blog.aitoearn.ai)
- [AiToEarn开源地址](https://github.com/yikart/AiToEarn)
- [AI模型排名](https://rank.aitoearn.ai)

---

Read more

Translate the following blog post title into English, concise and natural. Return plain text only without quotes. 哈佛大学 R 编程课程介绍

Harvard CS50: Introduction to Programming with R Harvard University offers exceptional beginner-friendly computer science courses. We’re excited to announce the release of Harvard CS50’s Introduction to Programming in R, a powerful language widely used for statistical computing, data science, and graphics. This course was developed by Carter Zenke.