Spring Boot 3.5 to 4 upgrade

We upgrade services from Spring Boot 3.5 to Spring Boot 4. Spring Boot 3.5 left open-source support on 30 June 2026. The move brings Spring Framework 7, Jakarta EE 11 and Jackson 3, on Java 21 or 25 LTS. OpenRewrite recipes do the mechanical changes; your tests prove the rest.

The task.

Spring Boot 3.5 left open-source support on 30 June 2026. Its last open-source release is 3.5.16. Your services keep running, but later fixes come only with commercial support.

Spring Boot 4.0 leaves open-source support on 31 December 2026. So the target is the 4.1 line, not 4.0. Services still on Spring Boot 2 have a longer path, with javax to jakarta first.

What we do.

  1. 01

    Inventory

    We list each service with its Spring Boot version, Java version and libraries. Services on Spring Boot 2 get their own path.

  2. 02

    Dependencies

    The parent moves to Spring Boot 4.1, which brings Spring Framework 7. We check each library for a release that supports it.

  3. 03

    Jackson 3

    Spring Boot 4 moves to Jackson 3. We find the custom serialisers, modules and settings that must change.

  4. 04

    Jakarta EE 11

    Spring Boot 4 runs on Jakarta Servlet 6.1, part of Jakarta EE 11. For Spring Boot 2 services, javax imports move to jakarta first.

  5. 05

    OpenRewrite

    OpenRewrite recipes change imports, properties and build files across the codebase. We review each change and run your tests.

  6. 06

    Java 21 or 25

    Spring Boot 4 needs Java 17 or later. We move services to Java 21 or 25 LTS in the same plan, or as the next step.

The parent POM, from 3.5 to 4.1
 <parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
-  <version>3.5.16</version>
+  <version>4.1.1</version>
 </parent>
 <properties>
-  <java.version>17</java.version>
+  <java.version>25</java.version>
 </properties>

Scroll the code sideways to read each line.

Schematic: the Spring Boot parent and the Java level in a Maven build. Spring Framework 7, Jakarta EE 11 and Jackson 3 arrive with the new parent; the code changes they cause come next. Pin the latest 4.1 patch release on the day you upgrade.

Typical engagements.

  • Upgrade assessment

    We map your services, versions and libraries. You get a written assessment with the order of the upgrades.

  • Service-by-service upgrade

    Services move in short increments. Each increment ends with a tested release.

  • Upgrade with your team

    We upgrade the first services with your engineers and write down the steps. Your team moves the rest, with our review.

Versions and dates.

From the vendors' published pages, checked on 17 October 2026.

Spring Boot 3.5 left open-source support on 30 June 2026; the last open-source release is 3.5.16.

Spring Boot 4.0 leaves open-source support on 31 December 2026; the current line is 4.1.

Spring Boot 4 requires Spring Framework 7 and at least Java 17, and moves to Jakarta Servlet 6.1 (Jakarta EE 11) and Jackson 3.

The move from javax to jakarta came with Spring Boot 3, so here it applies only to services coming from Spring Boot 2.

  • Standard or open-source support ends
  • Extended support
  • Limited support
  • Last checked 17 October 2026
  1. 30 June 2026Ended :

    Spring Boot 3.5 left open-source support; the last open-source release is 3.5.16.

  2. 31 December 2026 :

    Spring Boot 4.0 leaves open-source support; the current line is 4.1.

Is this for you?

A good fit

  • You have services on Spring Boot 3.5, or still on Spring Boot 2.
  • You have tests, or want them in place before the upgrade.
  • Your team will own the services after the upgrade.

Not a fit

  • You want the version raised without running your tests.
  • You expect OpenRewrite to finish the upgrade with no review.
  • You need people placed, with no technical lead on your side.

Questions.

Which Java and Spring Boot versions do you move to?

We move services to Spring Boot 4 on Java 21 or 25 LTS. We plan the move to Spring Framework 7 and Jakarta EE 11 and, for Spring Boot 2 services, the change from javax to Jakarta EE, the dependency updates and the tests. Spring Boot 3.5 left open-source support on 30 June 2026.

Do we still need to change javax to jakarta?

Only services coming from Spring Boot 2 still need the change from javax to jakarta. That move came with Spring Boot 3, so a 3.5 service already uses jakarta packages. Its path to Spring Boot 4 is Spring Framework 7, Jakarta EE 11 and Jackson 3.

Should we target Spring Boot 4.0 or 4.1?

We target Spring Boot 4.1, the current line, because Spring Boot 4.0 leaves open-source support on 31 December 2026.

What does OpenRewrite do in the upgrade?

OpenRewrite applies recipes that change imports, properties and build files across a codebase. It does the mechanical part; the tests and a review catch what it cannot.

Do our services stop working after 30 June 2026?

Your Spring Boot 3.5 services keep running after 30 June 2026: that date ended open-source support, not the software. Fixes after 3.5.16 come only with commercial support.

Which version are you on?

Tell us the platform, the version and what has to change. We reply with questions or a proposed next step.

Plan your upgrade