Compatibility matrix
Which versions work together?
Spring Boot pins tested versions of the whole stack. Pick your Spring Boot version to see the Spring Framework, minimum Java, platform, Hibernate, JPA and Spring Data versions it manages for you.
Starting a new project?
Use Spring Boot 4.1 on a long-term support Java release (Java 25, or 21). You get Spring Framework 7.0, Hibernate 7.4 and Jakarta Persistence 3.2 without choosing versions yourself.
On Spring Boot 2.x?
Upgrade to 2.7 first, then to 3.x: that jump moves you to Java 17 and from javax.* to jakarta.* packages. From 3.5, moving to 4.x is smaller. The Spring Boot upgrade planner lists every change.
| Spring Boot | Spring Framework | Minimum Java | Platform | Hibernate | JPA | Spring Data |
|---|---|---|---|---|---|---|
| 4.1 | 7.0 | Java 17 | Jakarta EE 11 | 7.4 | 3.2 | 2026.0 (JPA 4.1) |
| 4.0 | 7.0 | Java 17 | Jakarta EE 11 | 7.1 → 7.2 | 3.2 | 2025.1 (JPA 4.0) |
| 3.5 | 6.2 | Java 17 | Jakarta EE 10 | 6.6 | 3.1 | 2025.0 (JPA 3.5) |
| 3.4 | 6.2 | Java 17 | Jakarta EE 10 | 6.6 | 3.1 | 2024.1 (JPA 3.4) |
| 3.3 | 6.1 | Java 17 | Jakarta EE 10 | 6.5 | 3.1 | 2024.0 (JPA 3.3) |
| 3.2 | 6.1 | Java 17 | Jakarta EE 10 | 6.3 → 6.4 | 3.1 | 2023.1 (JPA 3.2) |
| 3.1 | 6.0 | Java 17 | Jakarta EE 10 | 6.2 | 3.1 | 2023.0 (JPA 3.1) |
| 3.0 | 6.0 | Java 17 | Jakarta EE 10 | 6.1 | 3.1 | 2022.0 (JPA 3.0) |
| 2.7 | 5.3 | Java 8 | Java EE 8 (javax) | 5.6 | 2.2 | 2021.2 (JPA 2.7) |
| 2.6 | 5.3 | Java 8 | Java EE 8 (javax) | 5.6 | 2.2 | 2021.1 (JPA 2.6) |
| 2.5 | 5.3 | Java 8 | Java EE 8 (javax) | 5.4 | 2.2 | 2021.0 (JPA 2.5) |
| 2.4 | 5.3 | Java 8 | Java EE 8 (javax) | 5.4 | 2.2 | 2020.0 (JPA 2.4) |
| 2.3 | 5.2 | Java 8 | Java EE 8 (javax) | 5.4 | 2.2 | Neumann (JPA 2.3) |
| 2.2 | 5.2 | Java 8 | Java EE 8 (javax) | 5.4 | 2.2 | Moore (JPA 2.2) |
| 2.1 | 5.1 | Java 8 | Java EE 8 (javax) | 5.3 | 2.2 | Lovelace (JPA 2.1) |
| 2.0 | 5.0 | Java 8 | Java EE 8 (javax) | 5.2 | 2.2 | Kay (JPA 2.0) |
| 1.5 | 4.3 | Java 7 | Java EE 7 (javax) | 5.0 | 2.1 | Ingalls (JPA 1.11) |
These are the versions each Spring Boot line manages; patch releases can move to a newer minor (shown with →). Check your build’s dependency tree (mvn dependency:tree) for the exact patch versions.