Language support

Move every Spring Boot service from 2.x to 4.x in one coordinated run.

Spring Boot version upgrades, Jakarta namespace migration, Spring Security modernization, and Java 17/21/25 alignment across hundreds of services.

Spring Boot upgrades that survive a polyglot estate.

Spring Boot upgrades break consistently and quietly. Recipes coordinate the change across every service that depends on the framework.

A “Migrate to Spring Boot 4.0” recipe run on JHipster repositories, showing reviewable code diffs.

Compiler-accurate by default.

Every Spring annotation, configuration class, and bean wiring is parsed into a compiler-accurate model. Recipes resolve symbols across modules instead of pattern-matching strings.

Concrete Spring Boot migration paths.

Version ranges and recipes verified against the live solution page and docs.moderne.io.

Version upgrade
  • Spring Boot 2.x → 3.x The big jump. Jakarta namespace migration, Spring Security 6, configuration property renames, and removed APIs.
  • Spring Boot 3.x → 4.x Latest major. Recipes target the API changes, dependency alignment, and configuration shifts between 3.x and 4.0.
  • Java alignment (17 / 21 / 25) Recipes coordinate the Java version upgrade alongside the Spring Boot jump so language features and dependency baselines stay aligned.
Framework
  • javax → jakarta Jakarta EE namespace migration across imports, dependencies, and APIs. The canonical Spring Boot 3 prerequisite.
  • Spring Security modernization Lambda DSL adoption, removed APIs, and authentication configuration changes through Spring Security 6.
Configuration
  • application.properties migration Renamed and removed configuration properties updated across application.properties and application.yml files.
Dependencies
  • Third-party dependency updates Spring-module and third-party dependency versions aligned to the target Spring Boot baseline, with transitive resolution.
Tests
  • JUnit 4 → JUnit 5 Annotation mapping, lifecycle conversion, and Maven or Gradle dependency updates run alongside the framework upgrade.
  • JUnit 5 → JUnit 6 The current hop, run alongside the framework upgrade for estates already on JUnit 5.x.
Our developers now spend less time worrying about legacy code and more time focusing on value-driven work.
Jason Simpson VP of Engineering, Choice Hotels Read the case study

Spring Boot migration, answered.

For most teams, automation via semantic code transformations is more effective than manual repo-by-repo upgrades. Spring Boot 3.x introduces significant framework updates including Jakarta EE namespace shifts, which are difficult to apply consistently by hand at scale. Manual upgrades break down due to inconsistent baselines, shared libraries, and varying test coverage.

Stepwise or multi-version upgrades support forward-looking approaches. Enterprises benefit from tools enabling incremental migration while maintaining portfolio visibility, reducing risk versus one-time large migrations.

Centralized governance with team-level autonomy. Define standardized migration rules, allow individual teams to review/merge via pull requests. Automated platforms apply upgrade logic consistently across repositories while preserving ownership and review.

Yes, when automation uses semantic code understanding rather than text-based search/replace. Semantic engines like OpenRewrite analyze code structure directly, enabling safe migrations validated through existing test suites.

Yes. Jakarta migrations involve widespread, consistent API and package changes — ideal for automation. OpenRewrite provides dedicated recipes automatically updating imports, dependencies, and APIs.

Automation compresses timelines from years to months or weeks for prepared teams, versus multiple years for manual repo-by-repo approaches.

Move Spring Boot once. Then stay on the supported branch.