Lean Spring Boot Applications for the Cloud
summary
Baseline Spring PetClinic on Java 17 starts ~5s, uses ~260MB RAM and serves ~800 RPS; upgrading to Java 21/23, enabling Spring AOT and class-data sharing (application.jsa) drops startup to ~3.5s but increases build time and image size. Using buildpacks, jlink and BellSoft/Alpine builders shrinks images; OpenJ9 reduces memory; GraalVM native images increase build time and image size but can raise throughput. Enabling virtual threads boosts throughput ~7–8x and improves latency; depclean cuts unused dependencies; actuators add 176 extra beans.
AI-written summary · about
chapters (18)
- 0:00Introduction and challenges
- 1:37Agenda and project setup
- 4:05Using buildpacks
- 7:10Benefits of buildpacks
- 9:49JDK benchmarking
- 14:59JVM optimizations
- 18:14Spring Boot configurations
- 22:06AOT processing
- 26:03Dependency management
- 29:42JLink and modularity
- 32:25Class data sharing
- 35:02Alternative runtimes
- 37:07GraalVM and optimization
- 39:13Builder and OS options
- 41:17Native images
- 43:07CRAC and checkpointing
- 45:49Virtual threads
- 47:59Conclusion and summary
related talks
49mBuilding Lean Spring Boot Applications for the Cloud
59mRuntime Efficiencies and Spring Boot
54mHow Fast is Spring
46mNext-Generation Cloud Native Apps with Spring Boot 3
43mStep up the performance game with Spring Boot and Project Leyden
42mSupercharge your JVM performance with Project Leyden and Spring Boot
51mBootiful Spring Boot 3.x
49mThe Path Towards Spring Boot Native Applications
