Open source support for Spring Boot 3 ended on June 30, 2026. If you are still on 3, this upgrade is coming for you. So let's do one for real. No slides. We bump the version and fix whatever breaks.
I take a small conference talks API on Spring Boot 3.5.16 and Java 17 and upgrade it to Spring Boot 4.1.1 and Java 25 on camera. The compiler catches some breaks. Others hide behind a misleading error, a single failing test, or no warning at all. We fix each one and talk about why it happens. Then I show how Spring Application Advisor automates the same upgrade across many apps.
Why modular auto-configuration in Spring Boot 4 means Flyway silently stops running and the H2 console returns a 404, and which starters bring them back
How to move from Jackson 2 to Jackson 3: tools.jackson imports, JsonMapperBuilderCustomizer, the immutable JsonMapper builder, and unchecked exceptions
How to fix broken tests with spring-boot-starter-webmvc-test, the new @WebMvcTest package, and @MockitoBean
How Jackson 3 changes date output and null handling for primitives, and how to keep your old JSON contract
How to replace the deprecated JSR-305 style annotations with JSpecify @NullMarked and @Nullable
If this helped, leave a thumbs up, subscribe to the channel, and tell me in the comments which break bit you. Happy coding!
0:00 - Intro: Spring Boot 3 support has ended
1:15 - Tour of the Spring Boot 3 demo app
3:30 - Running the app and checking support dates
4:30 - Why H2 and Flyway just work in Boot 3
5:45 - Bump to Spring Boot 4.1.1 and Java 25
7:00 - Break 1: Jackson 2 to Jackson 3
9:30 - Break 2: Test starters and @MockitoBean
11:30 - Break 3: Flyway never runs
13:30 - Break 4: Dates become ISO strings
15:30 - Break 5: Green build, H2 console gone
17:00 - Break 6: Null safety with JSpecify
19:00 - Break 7: Null seats now returns 400
21:00 - Upgrading at scale: OpenRewrite and Application Advisor
22:30 - Application Advisor demo
25:00 - Wrap up
🔗Resources & Links mentioned in this video:
GitHub Repository: Spring Boot 3 to 4 Migration: https://github.com/danvega/spring-boo...
Spring Boot Support Timeline: https://spring.io/projects/spring-boot
Application Advisor: https://enterprise.spring.io/spring-a...
Spring Initializr: https://start.spring.io
JSpecify: https://jspecify.dev
👋🏻Connect with me:
Website: https://www.danvega.dev
Twitter: Twitter: therealdanvega
Github: https://github.com/danvega
LinkedIn: LinkedIn: danvega
Newsletter: https://www.danvega.dev/newsletter
SUBSCRIBE TO MY CHANNEL: @danvega ❤️
Open source support for Spring Boot 3 ended on June 30, 2026. If you are still on 3, this upgrade is coming for you. So let's do one for real. No slides. We bump the version and fix whatever breaks.
I take a small conference talks API on Spring Boot 3.5.16 and Java 17 and upgrade it to Spring Boot 4.1.1 and Java 25 on camera. The compiler catches some breaks. Others hide behind a misleading error, a single failing test, or no warning at all. We fix each one and talk about why it happens. Then I show how Spring Application Advisor automates the same upgrade across many apps.
Why modular auto-configuration in Spring Boot 4 means Flyway silently stops running and the H2 console returns a 404, and which starters bring them back
How to move from Jackson 2 to Jackson 3: tools.jackson imports, JsonMapperBuilderCustomizer, the immutable JsonMapper builder, and unchecked exceptions
How to fix broken tests with spring-boot-starter-webmvc-test, the new @WebMvcTest package, and @MockitoBean
How Jackson 3 changes date output and null handling for primitives, and how to keep your old JSON contract
How to replace the deprecated JSR-305 style annotations with JSpecify @NullMarked and @Nullable
If this helped, leave a thumbs up, subscribe to the channel, and tell me in the comments which break bit you. Happy coding!
0:00 - Intro: Spring Boot 3 support has ended
1:15 - Tour of the Spring Boot 3 demo app
3:30 - Running the app and checking support dates
4:30 - Why H2 and Flyway just work in Boot 3
5:45 - Bump to Spring Boot 4.1.1 and Java 25
7:00 - Break 1: Jackson 2 to Jackson 3
9:30 - Break 2: Test starters and @MockitoBean
11:30 - Break 3: Flyway never runs
13:30 - Break 4: Dates become ISO strings
15:30 - Break 5: Green build, H2 console gone
17:00 - Break 6: Null safety with JSpecify
19:00 - Break 7: Null seats now returns 400
21:00 - Upgrading at scale: OpenRewrite and Application Advisor
22:30 - Application Advisor demo
25:00 - Wrap up
🔗Resources & Links mentioned in this video:
GitHub Repository: Spring Boot 3 to 4 Migration: https://github.com/danvega/spring-boo...
Spring Boot Support Timeline: https://spring.io/projects/spring-boot
Application Advisor: https://enterprise.spring.io/spring-a...
Spring Initializr: https://start.spring.io
JSpecify: https://jspecify.dev
👋🏻Connect with me:
Website: https://www.danvega.dev
Twitter: Twitter: therealdanvega
Github: https://github.com/danvega
LinkedIn: LinkedIn: danvega
Newsletter: https://www.danvega.dev/newsletter
SUBSCRIBE TO MY CHANNEL: @danvega ❤️