VMWare has announced the general availability of Spring Boot 3.2, a significant update to this popular open source Java framework, though at the time of writing the latest release is Release Candidate 2.0.
Spring Boot 3.2 is the first to support Java 21 virtual threads, also known as Project Loom, with a potentially big impact on performance and efficiency. According to VMWare developer advocate Josh Long, prior to Java 21 each new thread used 2MB of RAM, whereas virtual threads are lightweight.
GraalVM native image compilation using Spring Boot and virtual threads is also supported, with big improvements in startup time.
Another new feature is SSL hot reload. This enables embedded web servers, specifically Tomcat and Netty, to update SSL certificates without requiring a restart. After a new certificate is installed, existing connections use the old one, but new connections are secured with the replacement.
VMWare states that Spring Boot is experiencing remarkable growth in usage, claiming that it “continues to grow 50% year over year for 5 years running,” based on the annual VMWare State of Spring Report.
The history of Spring and Spring Boot, which runs on Spring, demonstrates the principle that pragmatic approaches generally win over unnecessary complexity.
Spring originated from a book written by Rod Johnson in 2002, called Expert One-on-One J2EE Design and Development, in which he described faults in Java 2 EE (Enterprise Edition), which he regarded as too complex and the cause of many failing projects. The book included a sample project, avoiding unnecessary use of EJB (Enterprise Java Beans), and this evolved into the Spring framework. Spring 1.0 was released in 2003.
Spring Boot, whose first release is described here, also aims to simplify the platform. “It takes an opinionated view of the Spring platform so that new and existing users can quickly get to the bits they need,” the release post explains. Spring Boot 1.0 first appeared in April 2014.
Fast forward to today, and Spring Boot is the default choice for many Java projects.
What about AI? Spring AI, currently in preview, aims to provide abstractions over services including OpenAI and Azure OpenAI – reminiscent of Microsoft’s Semantic Kernel for .NET. The command: spring boot add ai will add libraries to an existing project to support AI features such as chat bots. According to the docs, “the project was founded with the belief that the next wave of Generative AI applications will not just be for Python developers only, but will be ubiquitous across many programming languages.”