= Spring Boot 3.3.0-RC1 Release Notes

For changes in earlier milestones, please refer to:

- link:Spring-Boot-3.3.0-M3-Release-Notes[v3.3.0-M3]
- link:Spring-Boot-3.3.0-M2-Release-Notes[v3.3.0-M2]
- link:Spring-Boot-3.3.0-M1-Release-Notes[v3.3.0-M1]



== Upgrading from Spring Boot 3.2



=== Minimum Requirements Changes

None.



== New and Noteworthy

TIP: Check link:Spring-Boot-3.3.0-RC1-Configuration-Changelog[the configuration changelog] for a complete overview of the changes in configuration.

=== Auto-configure Embedded Web Server SSL with SNI

When configuring a Tomcat, Netty, or Undertow embedded web server with SSL/TLS, it is now possible to configure multiple hostnames with unique trust material for each to support Server Name Indication (SNI). 
See the https://docs.spring.io/spring-boot/how-to/webserver.html#howto.webserver.configure-ssl[updated documentation] for more information on the configuration options. 



=== Prometheus Client 1.x

Spring Boot 3.3.0-RC1 includes https://github.com/prometheus/client_java/releases/tag/v1.0.0[support for the Prometheus Client 1.x], contributed through https://github.com/spring-projects/spring-boot/pull/40023[#40023].
This release of the client contains some breaking changes, e.g. changes to the exported metric names.
Use of the Prometheus Push Gateway is not supported with the 1.x client, until this support has been added from the Prometheus maintainers.

If you want to instead use the 0.x version of Prometheus client, remove `io.micrometer:micrometer-registry-prometheus` from your dependencies and add `io.micrometer:micrometer-registry-prometheus-simpleclient` instead.
Spring Boot contains auto-configuration for simpleclient in a deprecated form which will be removed in Spring Boot 3.5.0.

For a more detailed migration guide, please see https://github.com/micrometer-metrics/micrometer/wiki/1.13-Migration-Guide[this section] of the Micrometer wiki.

=== Documentation Updates

The documentation migration we started in M3 has now been completed.
RC1 documentation is available at https://docs.spring.io/spring-boot/3.3.0-RC1.



=== Dependency Upgrades

Spring Boot 3.3.0-RC1 moves to new versions of several Spring projects:

* Spring Data 2024.0.0-RC1
* Spring GraphQL 1.3.0-RC1
* Spring HATEOAS 2.3.0-RC1
* Spring Integration 6.3.0-RC1
* Spring Security 6.3.0-RC1
* Spring Session 3.3.0-RC1
* Spring for Apache Kafka 3.2.0-RC1
* Spring for Apache Pulsar 1.1.0-RC1

Numerous third-party dependencies have also been updated, some of the more noteworthy of which are the following:

* Hazelcast 5.4.0
* Hibernate 6.5.0.CR2
* Micrometer 1.13.0-RC1



=== Miscellaneous

Apart from the changes listed above, there have also been lots of minor tweaks and improvements including:

* The new property `spring.data.jdbc.dialect` can be used to set the dialect for Spring Data JDBC. If not set, the dialect will be auto-detected.
* Add more gap between the orders of `CloudFoundryVcapEnvironmentPostProcessor` and `ConfigDataEnvironmentPostProcessor`.
* The Cassandra driver changed coordinates from `com.datastax.oss` to `org.apache.cassandra`.
* Setting the new property `management.observations.long-task-timer.enabled` to `false` now prevents the creation of a `LongTaskTimer` for every observation.
* Beans in the infrastructure role are now automatically excluded from lazy initialization.
* Spring Config now uses the conversion service from the environment when resolving properties.
* Set the new property `spring.docker.compose.start.skip` to `never` to always execute the Docker Compose startup command.
* A new `spring.graphql.websocket.keep-alive` property has been added.
* JPA auto-configuration now uses a `ManagedClassNameFilter` bean if one is defined.
* A new `spring.rabbitmq.template.allow-list-patterns` property has been added.

== Deprecations in Spring Boot 3.3.0-RC1

* The `@ServletEndpoint`, `@ControllerEndpoint` and `@RestControllerEndpoint` annotations for declaring Actuator endpoints have been deprecated. Instead, applications should https://docs.spring.io/spring-boot/reference/actuator/endpoints.html#actuator.endpoints.implementing-custom[use the `@Endpoint` / `@ReadOperation` / `@WriteOperation` model for contributing endpoints]. See https://github.com/spring-projects/spring-boot/issues/31768#issuecomment-2057414222[#31768]