Hi, Spring fans! Welcome to another installment of _This Week in Spring_ – **Java 21 edition**!
The big news, indeed, the _biggest_ news, is that Java 21 is now available here! You should use [SDKMAN]() to install it, like this: `sdk install java 21-graalce && sdk default java 21-graalce`. This install givews you both the new Java 21 OpenJDK distribution and the new GraalVM native image support for Java 21. It works just fine with existing versions of Spring Boot, but the real payoff will be with Spring Boot 3.2, where you’ll be able to plug in virtual threads with nary but a flick of a property: `spring.threads.virtual.enabled=true`. Spring Boot 3.2 drops in November. Get ready!
* Did I mention that Java 21 is available? if not, I also put out a [_Spring Tips_]() video for you to watch looking at a ton of te new features!
* [Spring Boot: Exception Handling Best Practices]()
* [Spring Data 2023.0.4, 2022.0.10, and 2021.2.16 released]()
* [Spring Data 2023.1.0-M3 released]()
* [Spring Framework 5.3.30 and 6.0.12 available now]()
* [Spring Tools 4.20.0 released]()
* [Spring for Apache Pulsar 1.0.0-M2 available now]()
* [Spring for GraphQL 1.0.5, 1.1.6, 1.2.3 released]()
* [Maciej Walkowiak shares another great thing](): the fabulous asynchronouss testing library, Awaitility, is going to be included in `spring-boot-starter-test`. Hurray!
* [OpenRewrite: Automatic Code Refactoring and More – Part 2]()
* [Piotr Mińkowski has a great point](): If you are looking for a gRPC and Spring Boot integration [you can use that starter](. In comparison to more popular `net.devh:grpc-spring-boot-starter` – it is more often released and has support for Spring Boot v3.
* [Spring Test lead Sam Brannen]() shares that Spring Framework 6.1 M5 introduces `@ContextCustomizerFactories` to register a `ContextCustomizerFactory`, superseding `@ContextConfiguration(initializers)` when you need access to the test class. Nice!
* [the good and the great Dr. David Syer has an interesting project here that looks at aggregating OpenAPI schema, here spring-projects-experimental/spring-openapi-aggregator]()
* Speaking of the good and great Dr. Syer, he and I are [doing a keynote at this year’s SpringOne in Singapore](), and we’ll be speaking at the local [Java User Group]() there, too.
* * [Blog: Comparing Local Kubernetes Development Tools: Telepresence, Gefyra, and mirrord]()
* [Blog: User Namespaces: Now Supports Running Stateful Pods in Alpha!]()Read More