Spring And Spring Boot Versions - header image

Spring And Spring Boot Versions

Last updated on May 17, 2025 - 8 comments
Star me on GitHub →  

A short guide to the latest Spring and Spring Boot versions, as well as information on the release cycle and maintenance windows.

What is the latest Spring Framework version?

The current stable version, as of mid-May 2025, is Spring 6.2.7. Version 7.x is in pre-release. You can always find new version announcements on https://github.com/spring-projects/spring-framework/releases.

What is the latest Spring Boot version?

The current stable version, as of mid-May 2025, is Spring Boot 3.4.5. Version 3.5.x is in pre-release. You can always find new version announcements on https://github.com/spring-projects/spring-boot/releases.

What Java version does the latest Spring Boot support?

Spring Boot 3.4.5 and 3.x in general require Java 17 as a minimum version. If you are currently still using Java 8 or 11 (shame on you ;)), you’ll need to stick to the 2.x release train.

What Spring version should I use?

Choosing a Spring version is relatively simple:

  • If you are building new Spring Boot projects, the version of Spring you are using is already pre-defined for you. If you are using Spring Boot 3.x, for example, you will be using Spring 6.x (though, in theory you could override this).

  • If you are using plain Spring in a greenfield project, you can obviously choose whatever version you want, which will usually be the latest one.

  • If you are using Spring in a legacy project, you can always think about upgrading to a newer Spring version if that makes sense from a business perspective (or if you want to respect the EOL announcements)- Spring versions have a high amount of compatibility (see next paragraph).

Realistically, you’ll find Spring Framework versions 4.x-6.x, as well as Spring Boot versions 1.x-3.x used by companies, though the rare, untouched-in-a-decade, legacy Spring Framework 3.x (initial release: 2009) Spring project also pops up.

How often do new versions of Spring Framework and Spring Boot get released? How long are they supported?

You’ll need to differentiate between Spring Framework and Spring Boot (which builds upon Spring Framework).

Spring Framework

Here’s a nice, little graph showing you Spring Framework’s version history:

springversions v4

You can see that the initial Spring release was ~17 years ago, with major framework versions being released every 3-4 year and minor versions more frequently.

If you want to find out what the open-source and commercial support for the individual versions is, have a look at this page: Spring Framework Versions.

Spring Boot

Here’s another graph showing you Spring Boot’s version history. Spring Boot has a different release cadence:

It releases a new major or minor version every six months (in May and November). They aim to release on the 3rd Thursday of the month. And they have been very consistent with this over the past years.

springbootversions v6

What are the differences between Spring versions?

Similar to the JVM, Spring Framework (not Spring Boot!) versions are insanely backwards compatible, which means you can (essentially) still run your Spring 1.0 xml files with the latest Spring 6.x (though I admittedly haven’t tried that out, yet). In addition, upgrading from, say 3 to 6 is also possible with a bit of effort (see this migration guide).

So, in general, newer Spring versions build on top of the older Spring versions and have minimal breaking changes (compared with, say Python 2 vs 3). So, all core concepts you learned for Spring version 3 or 4 are still true for Spring version 5.

You can get a great overview of what changed over the last decade in the individual Spring versions, here:

To give you an executive summary:

The core (dependency injection, transaction management etc.) always stays the same or gets extended. Spring, however, goes with time and offers support for newer Java language versions, test framework enhancements, Websockets, reactive programming, etc.

What are the differences between Spring Boot versions?

Spring Boot versions stay fairly compatible between minor release (think 3.1 to 3.2), but there have been breaking changes between major releases (think 2.x to 3.x), which also has to do with all the 3rd party integrations, libraries and their versions, that Spring Boot offers.

You can find out what changed in recent Spring Boot versions here:

Fin

Do you have any more questions regarding Spring versions? Let me know in the comments!

There's more where that came from

I'll send you an update when I publish new guides. Absolutely no spam, ever. Unsubscribe anytime.


Share

Comments (read-only)

8 comments

facuarielgomezz November 02, 2023
Great article! thanks
Anonymous May 16, 2023
hi :)
I used SPRING BOOT 3.0
I don't know how to inject principal. In SPRING BOOT 2 it worked that way.
@GetMapping("/patient/visits/test")
public ResponseEntity<String> show(@AuthenticationPrincipal UsernamePasswordAuthenticationToken token) {
System.out.println(token.getPrincipal());
return ResponseEntity.ok().body("ok");
}
In version 3.0 , such a record returns null to me.
Maybe someone can help me?
Anonymous May 02, 2024
Did you ever figure it out?
dennis.ritter December 13, 2022
Why do you write that Spring Boot 3.0 was compatible with Java 11 and 8? According to the devs it isn't:
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes#java-17-baseline-and-java-19-support
Marco Behler December 13, 2022
Good question :) Was a copy & replace error, thanks for spotting it, fixed now.
chandu.eecs April 29, 2022
I am trying to upgrade 2.3.1.RELEASE -> 2.6.6 and 5.2.7.RELEASE -> 5.3.18, but getting lot of expections along the and not able to understand and fix the error [Caused by: java.lang.ClassNotFoundException: org.hibernate.internal.util.xml.XMLHelper].

Can you please help me pointing to right resources or the steps to be followed ?, thanks!
Anonymous April 29, 2022
Hi, I'm using spring boot 2.6.6 version, I want to upgrade elastic search version from 7.13.2 to 7.17.3. No versions after 7.13.2 are working. May I know if spring 2.6.6 and elastic search 7.17.3 are compatible. If not can you please help with compatible version
Marco Behler April 29, 2022
I honestly don't know.
Anonymous March 31, 2022
we are facing issue with spring-beans-5.3.4 as it is the vulnerable, what was the replacement of this version dependecy
Marco Behler April 01, 2022
See this page:
https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement

5.3.18 seems to be the way to go.
Anonymous February 15, 2022
Hi,

Quick question, do you know why latest spring-boot (and spring) stopped being suffixed by "RELEASE" keyword ?
Does this keyword had any special meaning before (like satisfying some quality checks or requirements ...)?

Thanking you in advance.
Anonymous February 16, 2022
Just to answer my own question: The ".RELEASE" suffix was used in older Spring releases, but was dropped in 2020. It indicates that the version is the release version of the software, rather than a pre-release version.
After 2020, a RELEASE version would not have any suffix.

https://stackoverflow.com/questions/39018177/what-does-release-mean-in-spring-framework-versions#:~:text=1%20Answer&text=The%20%22.,than%20a%20pre%2Drelease%20version.
Marco Behler February 16, 2022
Thanks for contributing!
Anonymous April 29, 2021
Um... no sure about this on your date stamp
Last updated on May 03, 2021 - 0 comments.
It's still April where I live.
Anonymous April 30, 2021
yes , Its still April
Marco Behler May 01, 2021
Good catch, fixed!

let mut author = ?

I'm @MarcoBehler and I share everything I know about making awesome software through my guides, screencasts, talks and courses.

Follow me on Twitter to find out what I'm currently working on.