3.3.13

Latest release in branch 3.3
Released 9 months ago (June 19, 2025)

Software Spring Boot
Branch 3.3
End of OSS support June 30, 2025
End of commercial support June 30, 2026
First official release version 3.3.0
First official release date 1 year ago (May 23, 2024)
Supported
Java versions
Java 17+
Source code https://github.com/spring-projects/spring-boot/tree/v3.3.13
Documentation https://docs.spring.io/spring-boot/docs/3.3.13/spring-boot-reference/
Spring Boot 3.3 Releases View full list

What Is New in Spring Boot 3.3

Spring Boot 3.3 delivers incremental improvements focused on developer experience, enhanced integrations, and keeping dependencies current. This release builds on the solid foundation of 3.x with quality-of-life upgrades rather than massive shifts.

Category Key Changes
New Features Docker Compose lifecycle management, Testcontainers at development time, Graceful shutdown for Jetty
Improvements Enhanced DevTools, RestClient builder support, Updated Spring Boot Docker image
Dependency Updates Spring Framework 6.1, Groovy 4, Kotlin 1.9, Jackson 2.16, Tomcat 10.1, Jetty 12
Deprecations JMX-specific 'spring.jmx.' properties, Spring Boot Docker image publishing

How does Docker Compose integration improve the development workflow?

Spring Boot 3.3 can automatically manage your Docker Compose lifecycle. This means you define your dependencies like PostgreSQL or Redis in a compose.yaml file, and Spring Boot will start them when your application runs and shut them down when it stops.

In practice, this eliminates the need to manually run docker-compose up in a separate terminal. It just works, making the inner-loop development experience much smoother. You can control this behavior with the spring.docker.compose properties if you need to skip it for certain environments.

What enhancements were made for testing with Testcontainers?

This release introduces development-time Testcontainers support. By annotating a @TestConfiguration with @ImportDevTools, the containers you define will be started automatically during development, not just during tests.

This is a game-changer for integration testing. It allows your local development environment to closely mirror your test and production environments without complex setup scripts. The containers stay running across application restarts managed by DevTools, saving significant time.

Is there a better way to build a RestClient now?

Yes, Spring Boot 3.3 adds support for creating a RestClient bean using a builder. You can now inject a RestClient.Builder and customize it with custom interceptors, message converters, or a base URL.

This provides a more modern and flexible alternative to the older RestTemplate. The builder pattern gives you fine-grained control over the client's configuration while still benefiting from Spring Boot's auto-configuration.

What's new with the Spring Boot Docker image?

The official Spring Boot Docker image has been updated with a new base and a new entrypoint structure. The new entrypoint offers much more flexibility, allowing you to easily run your application as a standard Java app or in an exploded form.

This matters because it simplifies your Dockerfiles. You can now leverage the entrypoint's logic to handle Java parameter passing more effectively. Note that the publishing of these images to Docker Hub is now deprecated in favor of using the Gradle or Maven plugins to build images.

How was graceful shutdown improved for Jetty?

Jetty now supports the graceful shutdown feature that was already available for Tomcat and Undertow. When enabled, the web server will stop accepting new requests and wait for ongoing requests to complete before shutting down during a graceful exit.

This ensures zero-downtime deployments and cleaner releases when using Jetty as your embedded server. You can configure the wait period with the existing server.shutdown property, making the behavior consistent across all supported servlet containers.

FAQ

Do I need to rewrite my application to use Spring Boot 3.3?
No, this is a minor release. You should be able to upgrade from Spring Boot 3.x by just updating the version in your build file. Always check the release notes for any deprecated features you might be using.

Can I use the new Docker Compose feature in production?
It's designed primarily for development to streamline your local experience. For production, you'd typically use a dedicated orchestration tool like Kubernetes.

What happened to the JMX properties that were deprecated?
The JMX-specific 'spring.jmx.' properties are now deprecated in favor of the general 'spring.application.admin.' properties. Your old configuration will still work but you should plan to migrate.

How do I build Docker images now that the publishing is deprecated?
You should use the Spring Boot Maven or Gradle plugins (spring-boot:build-image or bootBuildImage) to build your images. These plugins use Cloud Native Buildpacks and are the recommended approach.

Is Java 21 required for Spring Boot 3.3?
No, Spring Boot 3.3 still supports Java 17 and above. Java 21 is fully supported and recommended for new projects, but you are not forced to upgrade from Java 17.

Releases In Branch 3.3

Version Release date
3.3.13 9 months ago
(June 19, 2025)
3.3.12 10 months ago
(May 22, 2025)
3.3.11 11 months ago
(April 24, 2025)
3.3.10 1 year ago
(March 20, 2025)
3.3.9 1 year ago
(February 20, 2025)
3.3.8 1 year ago
(January 23, 2025)
3.3.7 1 year ago
(December 19, 2024)
3.3.6 1 year ago
(November 21, 2024)
3.3.5 1 year ago
(October 24, 2024)
3.3.4 1 year ago
(September 19, 2024)
3.3.3 1 year ago
(August 22, 2024)
3.3.2 1 year ago
(July 18, 2024)
3.3.1 1 year ago
(June 20, 2024)
3.3.0 1 year ago
(May 23, 2024)