Migrate to Spring Boot 4.0
Recipe ID
org.openrewrite.java.spring.boot4.UpgradeSpringBoot_4_0Artifactorg.openrewrite.recipe:rewrite-springMigrate applications to the latest Spring Boot 4.0 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs.
Composite recipespringbootMSAL
Add to your build
Get a download tokenThis recipe is Moderne licensed, so the token must belong to a Moderne customer. It replaces YOUR_DOWNLOAD_TOKEN below.
~/.gradle/gradle.properties
codeGenomeUsername=you@example.com
codeGenomeToken=YOUR_DOWNLOAD_TOKEN
build.gradle.kts
plugins {
id("org.openrewrite.rewrite") version("latest.release")
}
rewrite {
activeRecipe("org.openrewrite.java.spring.boot4.UpgradeSpringBoot_4_0")
}
repositories {
mavenCentral()
maven {
url = uri("https://artifacts.codegenomeproject.org/maven")
credentials {
username = providers.gradleProperty("codeGenomeUsername").get()
password = providers.gradleProperty("codeGenomeToken").get()
}
}
}
dependencies {
rewrite("org.openrewrite.recipe:rewrite-spring:6.40.0")
}
Then run
./gradlew rewriteRunUsage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe org.openrewrite.java.spring.boot4.UpgradeSpringBoot_4_0If the recipe isn’t available locally, install it with:
mod config recipes jar install org.openrewrite.recipe:rewrite-spring:RELEASEDefinition
This recipe runs the following recipes in order.
- Migrate to Spring Boot 3.5
org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_5 - Migrate to Spring Cloud 2025.1
org.openrewrite.java.spring.cloud2025.UpgradeSpringCloud_2025_1 - Migrate to Spring Framework 7.0
org.openrewrite.java.spring.framework.UpgradeSpringFramework_7_0 - Migrate to Spring Security 7.0
org.openrewrite.java.spring.security7.UpgradeSpringSecurity_7_0 - Migrate to Spring Batch 6.0 from 5.2
org.openrewrite.java.spring.batch.SpringBatch5To6Migration - Migrate Spring Boot properties to 4.0
org.openrewrite.java.spring.boot4.SpringBootProperties_4_0 - Replace
@MockBeanand@SpyBeanorg.openrewrite.java.spring.boot4.ReplaceMockBeanAndSpyBean - Relocate Spring Boot web server classes to their Spring Boot 4.0 packages
org.openrewrite.java.spring.boot4.RelocateWebServerClasses - Migrate to Hibernate 7.1.x
org.openrewrite.hibernate.MigrateToHibernate71 - Migrate to testcontainers-java 2.x
org.openrewrite.java.testing.testcontainers.Testcontainers2Migration - Upgrade to SpringDoc 3.0
org.openrewrite.java.springdoc.UpgradeSpringDoc_3_0 - Upgrade Gradle or Maven dependency versions
org.openrewrite.java.dependencies.UpgradeDependencyVersion - Upgrade Gradle or Maven dependency versions
org.openrewrite.java.dependencies.UpgradeDependencyVersion - Upgrade Maven plugin version
org.springframework.boot:spring-boot-maven-plugin:4.0.xorg.openrewrite.maven.UpgradePluginVersion - Migrate a Spring Boot 3
jackson-bom.versionoverride tojackson-2-bom.versionorg.openrewrite.java.spring.boot4.MigrateJacksonBomProperty - Upgrade Maven parent project version to
org.springframework.boot:spring-boot-starter-parent:4.0.xorg.openrewrite.maven.UpgradeParentVersion - Remove redundant explicit dependency and plugin versions
org.openrewrite.maven.RemoveRedundantDependencyVersions - Remove redundant explicit dependency and plugin versions
org.openrewrite.maven.RemoveRedundantDependencyVersions - Update a Gradle plugin by id
org.springframework.bootorg.openrewrite.gradle.plugins.UpgradePluginVersion - Update Gradle wrapper ^8.14-bin
org.openrewrite.gradle.UpdateGradleWrapper - Update a Gradle plugin by id
org.jetbrains.kotlin.*org.openrewrite.gradle.plugins.UpgradePluginVersion - Upgrade Maven plugin version
org.jetbrains.kotlin:kotlin-maven-plugin:2.2.xorg.openrewrite.maven.UpgradePluginVersion - Upgrade Gradle or Maven dependency versions
org.openrewrite.java.dependencies.UpgradeDependencyVersion - Migrate to Spring Boot 4.0 modular starters
org.openrewrite.java.spring.boot4.MigrateToModularStarters - Rename Spring Boot 4.0 starters with managed versions
org.openrewrite.java.spring.boot4.RenameDeprecatedStartersManagedVersions - Change Gradle or Maven dependency
org.springframework.boot:spring-boot-starter-oauth2-authorization-serverorg.openrewrite.java.dependencies.ChangeDependency - Change Gradle or Maven dependency
org.springframework.boot:spring-boot-starter-oauth2-clientorg.openrewrite.java.dependencies.ChangeDependency - Change Gradle or Maven dependency
org.springframework.boot:spring-boot-starter-oauth2-resource-serverorg.openrewrite.java.dependencies.ChangeDependency - Change Gradle or Maven dependency
org.springframework.boot:spring-boot-starter-weborg.openrewrite.java.dependencies.ChangeDependency - Change Gradle or Maven dependency
org.springframework.boot:spring-boot-starter-web-servicesorg.openrewrite.java.dependencies.ChangeDependency - Remove a Gradle or Maven dependency
org.openrewrite.java.dependencies.RemoveDependency - Change Gradle or Maven dependency
org.springframework.boot:spring-boot-starter-aoporg.openrewrite.java.dependencies.ChangeDependency - Upgrade Gradle or Maven dependency versions
org.openrewrite.java.dependencies.UpgradeDependencyVersion - Upgrade Gradle or Maven dependency versions
org.openrewrite.java.dependencies.UpgradeDependencyVersion - Change Gradle or Maven dependency
org.jobrunr:jobrunr-spring-boot-3-starterorg.openrewrite.java.dependencies.ChangeDependency - Upgrade Gradle or Maven dependency versions
org.openrewrite.java.dependencies.UpgradeDependencyVersion - Add
@AutoConfigureTestRestTemplateif necessaryorg.openrewrite.java.spring.boot4.AddAutoConfigureTestRestTemplate - Add
@AutoConfigureWebTestClientif necessaryorg.openrewrite.java.spring.boot4.AddAutoConfigureWebTestClient - Add
@AutoConfigureMockMvcif necessaryorg.openrewrite.java.spring.boot4.AddAutoConfigureMockMvc - Migrate OpenAPI Generator
springconfiguration to Spring Boot 4org.openrewrite.java.spring.boot4.MigrateOpenApiGeneratorToSpringBoot4 - Migrate jsonschema2pojo configuration to Spring Boot 4
org.openrewrite.java.spring.boot4.MigrateJsonschema2PojoToSpringBoot4
Data tables
Structured output this recipe can produce.
- Maven metadata failuresAttempts to resolve maven metadata that failed.
org.openrewrite.maven.table.MavenMetadataFailures - Source files that had resultsSource files that were modified by the recipe run.
org.openrewrite.table.SourcesFileResults - Source files that had search resultsSearch results that were found during the recipe run.
org.openrewrite.table.SearchResults - Source files that errored on a recipeThe details of all errors produced by a recipe run.
org.openrewrite.table.SourcesFileErrors - Recipe performanceStatistics used in analyzing the performance of recipes.
org.openrewrite.table.RecipeRunStats