About spring-boot-migration
spring-boot-migration is a staged playbook for teams upgrading applications from Spring Boot 3 to 4. It separates framework changes from behavior changes and includes dependency, runtime, and contract checks.
Key features
- 01Establish a tested Boot 3.5 baseline
- 02Prepare Java and Jakarta API requirements
- 03Audit dependencies and modular starters
- 04Inventory Jackson and test configuration changes
- 05Verify profiles, migrations, and runtime behavior
- 06Remove temporary migration tooling
Use cases
- 01Plan a staged Spring Boot 3 to 4 upgrade
- 02Find dependency and starter changes
- 03Validate application behavior after migration
- 04Review migration plans for common upgrade risks
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ rrezartprebreza/ spring-boot-skills --skill spring-boot-migrationAfter installing, type/spring-boot-migrationin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlexamples/bad-migration-plan.mdgood-migration-plan.mdDetails
From the project READMESpring Boot 3 to 4 Migration
Migrate in controlled stages. Keep behavior changes separate from the framework upgrade.
Establish the baseline
- Upgrade to the latest Boot 3.5 maintenance release.
- Run unit, slice, integration, startup, and migration tests before changing the major version.
- Remove Boot 3 deprecations and record all explicitly versioned dependencies.
- Compare the Boot 3.5 and Boot 4 dependency-management reports.
- Verify Spring Cloud and other portfolio release-train compatibility independently.
Prepare for Boot 4
- Require Java 17 or newer; prefer Java 21 for application builds.
- Replace
javax.*remnants with Jakarta APIs before the upgrade. - Remove Undertow assumptions; Boot 4 requires a Servlet 6.1-compatible container.
- Inventory Jackson 2 custom modules, serializers,
ObjectMapperbeans, and package imports. - Inventory test annotations, especially
@MockBean,@SpyBean, and implicit MockMvc setup. - Add
spring-boot-properties-migratortemporarily after changing the Boot version, then remove it.
Migrate dependencies deliberately
Boot 4 is more modular. Prefer dedicated starters over relying on incidental transitive dependencies. Expect dedicated starters for web MVC, security tests, Flyway/Liquibase, and technology-specific tests. Use the classic starters only as a temporary diagnostic bridge, never as the final dependency model.
Verify the result
- Run the application with every supported profile.
- Exercise schema migration against a production-like database copy.
- Verify JSON contracts, security failures, pagination, and error responses.
- Confirm actuator exposure, logging, metrics, and tracing behavior.
- Remove the properties migrator and all classic starters before declaring the migration complete.
Examples
- See
examples/good-migration-plan.mdfor a staged migration. - See
examples/bad-migration-plan.mdfor a risky one-step upgrade.
Gotchas
- Agent jumps from an old Boot 3 minor directly to Boot 4 - upgrade to current 3.5 first.
- Agent changes framework versions and business behavior together - isolate the migration diff.
- Agent assumes all Boot 3 starters keep the same names and transitive dependencies - audit each one.
- Agent leaves
spring-boot-properties-migratorin production - remove it after configuration cleanup. - Agent treats passing compilation as completion - verify runtime wiring, JSON, security, and tests.