Last year in December, Pratik Dwivedi of Unlogged posted an informative article on migrating from Java 8/11 to Java 21, and Spring Boot 2 to the latest Spring Boot 3.2, which covers everything from the benefits of that transition (e.g., being able to use GraalVM, Virtual Threads and CRaC and the Spring Framework’s new RestClient and observability features) to a checklist and best practices for carrying out such a migration for your applications.