Uncategorized

This Month in Spring – June 2023

Hello, my friends! What a crazy month it's been since we last spoke, and what a crazy month it will be when we next speak!

We released Spring Boot 3.1 on May 18th, 2023. This release coincided with Spring IO in Barcelona, Spain. It was a ton of fun, and we announced many amazing new things, including preliminary support for CraC and Project Loom in the next versions of Spring Framework and Spring Boot (6.2 and 3.2). The new release brings all the usual niceties, including new dependencies and a bevy of amazing new developer-time features. Here are some of my favorites:

  • Built in Docker Compose support – Have a docker-compose.yml in your project root? Add spring-boot-docker-compose as developmentOnly scope in Gradle or optinal in Maven and Spring Boot will automatically run it for you on startup and shut it down on application shutdown. Here's an example
  • Built in Testcontainers support – You know Spring Boot has first class support for Testcontainers in our unit testing framework. Perhaps you've used the @DynamicPropertySource mechanism to configure the environment based on Testcontainer containers? – but this new release makes things even better. Define a test-code only main(String []) method and then forward it to your production code main(String [] args) methods. You can point that test-code only main class to new @Configuration classes, which may in turn have Testcontainer connections defined. Run that test-code only main method and Spring Boot will start that Testcontainer for you during development. You can use Devtools to fast reload code changes. You can use Devtools' @RestartScope to keep the container open across reloads, too! Now you've got the ultimate in git clone and run-able code! Here's an example.
  • Unified SSL support across the framework – Spring Boot supports SSL in all the various configured integrations where it is available, but the support for SSL was inconsistent. In the new version of Spring Boot 3.1, there is a new type called SslBundle that describes the common keys and certificates in a unified way that you can then plugin to various HTTP servers, clients, data access technologies, etc. Here are the docs where you can learn even more
  • And, to make this new Testcontainer support even better, we just debuted new support for code-generating your Testcontainers-ready test main(String[]) method on the Spring Initializr!

I started May in Europe, speaking at shows and to groups in Athens, Greece; London, UK; Berlin, Germany; Barcelona, Spain; and Belgrade, Serbia. It was an amazing three week tour!

While it was sad to see it end, I was glad to get home because I got to see my daughter graduate high school! What a journey it's been for her, and it's only the first step in a long series of steps as she begins her adult life, starting college in the fall. I'm so very proud of her.

Tomorrow, the 9th of June, we begin a two-month tour of Asia where I'll be visiting organizations and giving public presentations at various places, including Singapore, Seoul, Taipei, Tokyo (location and date TBD..), Sydney, Kuala Lumpur, Jakarta, and more. You can find the still-in-flux details on my site, of course, as we add more stops and firm up the details of existing ones.

It will be a fun, exhausting tour, but the cherry on top is when I come back and see my daughter off to college and attend the first in-person SpringOne, being held coincident with VMware Explore in sunny Las Vegas! Have you registered yet?

My friends, there's a lot to get into this month, so let's dive right into it!