Jakarta EE 11 Under the Hood: What Spring Boot 4 Inherits and What It Ignores
Spring Boot 4 has understandably grabbed most of the headlines in the Java ecosystem. However, underneath the excitement around Spring’s latest release lies another important story that many developers have largely missed: Spring Boot 4 arrives in a world where Jakarta EE 11 is now the enterprise Java baseline.
What’s particularly interesting is that Spring Boot 4 benefits from several Jakarta EE 11 improvements even when developers don’t realize it. At the same time, Spring continues to ignore certain Jakarta specifications because it already provides its own alternative abstractions.
Most teams upgrading Spring Boot applications will never explicitly add a Jakarta EE runtime. Nevertheless, many of the APIs, standards, and persistence capabilities they use every day have been influenced by the work happening inside the Jakarta EE platform.
So let’s look past the release notes and focus on the practical question:
What actually changed in Jakarta EE 11, and which of those changes matter to a Spring Boot developer writing everyday
@Entityclasses and business services?
Why Jakarta EE 11 Matters to Spring Developers
Historically, Spring and Jakarta EE were often portrayed as competing approaches to enterprise Java.
That distinction no longer tells the full story.
Modern Spring Boot applications depend heavily on Jakarta specifications. Every time a developer writes:
@Entity @Table @Embeddable @NotNull
they are using Jakarta APIs.
The question is not whether Spring uses Jakarta EE.
It does.
The real question is which parts of Jakarta EE Spring adopts and which parts it decides to replace with its own programming model.
Jakarta EE 11 introduces one entirely new specification—Jakarta Data 1.0—while also updating core APIs including CDI 4.1, Validation 3.1, and Persistence 3.2. These updates collectively focus on improving developer productivity and modernizing enterprise Java for Java 17 and Java 21 environments.
Jakarta Data 1.0: The Standardized Version of a Familiar Idea
If there is one feature that generated the most buzz around Jakarta EE 11, it is undoubtedly Jakarta Data 1.0.
The funny thing is that Spring developers will immediately recognize it.
Jakarta Data introduces a repository-based programming model that looks remarkably similar to what developers have been doing with Spring Data JPA for years.
Instead of writing repetitive data-access boilerplate, developers define repository interfaces and allow the framework to generate implementations automatically. Jakarta Data also supports method-name query generation, pagination, CDI integration, validation integration, and multiple datastore types.
For example, Spring developers are already comfortable with patterns such as:
public interface CustomerRepository {
Customer findByEmail(String email);
}
That style of development is essentially what Jakarta Data standardizes for the broader Jakarta ecosystem. [openliberty.io], [javacodegeeks.com]
Does Spring Boot 4 Benefit?
Not directly.
Spring already has Spring Data.
In fact, Spring Data remains significantly more mature and feature-rich than Jakarta Data today.
However, Jakarta Data is important because it finally gives enterprise Java a standardized repository abstraction rather than relying on vendor-specific implementations.
For Spring developers, Jakarta Data is less about replacing existing code and more about observing where the broader Java ecosystem is heading.
CDI 4.1: Cleaner Dependency Injection
Dependency injection is something Spring developers use constantly.
However, many developers forget that Jakarta EE has its own mature dependency injection framework called CDI (Contexts and Dependency Injection).
Jakarta EE 11 includes CDI 4.1, which continues the effort to modernize and simplify the programming model while improving maintainability and reducing historical complexity.
If you’re using Spring Boot, you probably write code like this:
@Service
public class PaymentService {
}
and inject dependencies using constructor injection.
Spring’s model remains separate from CDI.
As a result, although Spring Boot applications benefit from the general direction of Jakarta EE modernization, they do not suddenly switch to CDI containers.
This is a classic example of Spring acknowledging a Jakarta standard while still preferring its own implementation.
From a practical standpoint, most Spring developers will never feel the CDI 4.1 upgrade directly.
Yet the update remains important because it continues reducing the gap between Jakarta EE and Spring-based development styles.
Jakarta Validation 3.1: Better Support for Modern Java
This is where things start becoming very relevant to everyday Spring development.
Jakarta Validation 3.1 introduces better support for modern Java language features, including validation on Java Records.
If your application uses request DTOs like:
public record CustomerRequest(
@NotBlank String firstName,
@NotBlank String lastName,
@Email String email
) {}
then Jakarta Validation is already working behind the scenes.
Spring Boot continues to rely heavily on Bean Validation APIs for request validation, DTO validation, and entity validation. Consequently, every improvement inside Jakarta Validation directly benefits Spring applications. [jakarta.ee], [newsroom.eclipse.org]
This is one of those upgrades that many teams will inherit without changing a single line of code.
And honestly, those are often the best upgrades.
Jakarta Persistence 3.2: The Upgrade Every Spring Developer Inherits
While Jakarta Data received the headlines, I would argue that Persistence 3.2 is actually the most important Jakarta EE 11 update for Spring teams.
The reason is simple:
Almost every Spring business application uses JPA.
Jakarta Persistence 3.2 introduces several quality-of-life improvements that make modern Java entities feel much more natural. Among the most notable additions are:
- Support for Java Records as
@Embeddableand@IdClass - Built-in mapping for
java.time.Instant - Built-in mapping for
java.time.Year - Further movement away from legacy
Date,Timestamp, andCalendarAPIs in favor of the modernjava.timepackage [jakarta.ee]
Consider an older persistence model:
private Timestamp createdAt;
Modern applications increasingly prefer:
private Instant createdAt;
Jakarta Persistence 3.2 formally strengthens that modern approach. [jakarta.ee]
For developers building Spring Boot applications, this is probably the Jakarta EE 11 feature that will have the most immediate effect on everyday code.
What Spring Boot 4 Still Ignores
Despite adopting many Jakarta APIs, Spring Boot continues to maintain its own opinions.
And honestly, that is unlikely to change.
For example:
| Jakarta Specification | Spring Preference |
|---|---|
| CDI | Spring IoC Container |
| Jakarta Data | Spring Data |
| Jakarta REST | Spring MVC / WebFlux |
| Jakarta Security | Spring Security |
This isn’t necessarily a bad thing. Spring’s ecosystem is one of the reasons many teams choose Spring in the first place.
However, it does mean that developers should not assume every Jakarta innovation automatically becomes a first-class Spring feature.
Sometimes Spring adopts it. Sometimes Spring replaces it. Sometimes Spring simply ignores it because it already provides a stronger abstraction.
The Bigger Trend Few Developers Notice
The most interesting takeaway from Jakarta EE 11 isn’t a specific feature. It’s the direction. For years, Spring was viewed as the innovation layer and Jakarta EE as the standards layer.
That gap has narrowed considerably. Jakarta Data now standardizes repository patterns that Spring popularized. Persistence continues modernizing around Java 21-era development practices.
Validation better supports records. CDI keeps becoming lighter and more developer-friendly.
As a result, the distinction between “Spring-style development” and “Jakarta-style development” is becoming less dramatic than it was a decade ago.
Conclusion
If you’re upgrading to Spring Boot 4, it is worth paying attention to Jakarta EE 11 even if you never deploy to a Jakarta EE server.
Many of the improvements introduced in Jakarta Validation 3.1 and Persistence 3.2 will quietly improve your applications. Meanwhile, Jakarta Data offers a glimpse into how the wider Java ecosystem is standardizing repository-driven data access.
Will Jakarta Data replace Spring Data? Not anytime soon.
Will CDI replace Spring’s dependency injection model? Almost certainly not.
However, understanding these changes helps developers appreciate how much of the modern Spring experience is now built on top of Jakarta standards.
And that may be the biggest story of Jakarta EE 11: even when Spring chooses its own abstractions, it is increasingly standing on the foundation that Jakarta continues to modernize.
What We Have Learned
Jakarta EE 11 introduces several updates that directly or indirectly affect Spring Boot 4 applications. Jakarta Data 1.0 brings a standardized repository model similar to Spring Data, CDI 4.1 continues modernizing dependency injection, Validation 3.1 improves support for modern Java features such as records, and Persistence 3.2 delivers practical improvements for JPA-based applications through better support for Instant, Year, and record-based models.
Although Spring continues to favor its own abstractions in areas such as dependency injection, security, REST, and data access, many Spring applications will still benefit from Jakarta EE 11 improvements beneath the surface.




