-
Notifications
You must be signed in to change notification settings - Fork 41.6k
Spring Boot 3.3.0 M3 Release Notes
To use Spring Boot’s auto-configuration of Micrometer’s Prometheus support, replace your dependency on micrometer-registry-prometheus with a dependency on micrometer-registry-prometheus-simpleclient.
micrometer-registry-prometheus-simpleclient is a new module in Micrometer 1.13. It contains Micrometer’s existing support for Prometheus and uses the 0.16.x generation of the Prometheus Java Client.
The existing micrometer-registry-prometheus module now provides support for the 1.x generation of the Prometheus Java Client and is not yet supported by Spring Boot.
This release upgrades to Flyway 10.10. Flyway 10 is more modular than previous versions and support for several databases has been moved into a number of new, database-specific modules. If you are using any of the following databases, update your dependencies accordingly:
-
DB2 (
flyway-database-db2) -
Derby (
flyway-database-derby) -
HSQLDB (
flyway-database-hsqldb) -
Informix (
flyway-database-informix) -
PostgreSQL (
flyway-database-postgresql) -
Redshift (
flyway-database-redshift) -
SAP HANA (
flyway-database-saphana) -
Snowflake (
flyway-database-snowflake) -
Sybase ASE (
flyway-database-sybasease)
This release upgrades to Infinispan 15.
Infinispan 15 has raised its Jakarta EE baseline and, as such, a number of its -jakarta modules, such as infinispan-core-jakarta, no longer exist. Use their standard alternatives, such as infinispan-core, instead.
|
Tip
|
Check the configuration changelog for a complete overview of the changes in configuration. |
CDS is a JVM feature that can help reduce the startup time and memory footprint of Java applications. Spring Boot now has support for easy creation of a CDS friendly layout. This layout can be created by extracting the uber JAR with the help of the tools jarmode:
java -Djarmode=tools -jar your-application.jar extractThis creates a your-application/your-application.jar and the needed libraries in a your-application/lib folder. The application can then be executed with java -jar your-application/your-application.jar.
The tools jarmode supports two commands at the moment:
-
extract, as shown above. This supersedes-Djarmode=layertools extract. -
list-layers, which supersedes-Djarmode=layertools list-layers.
Run
java -Djarmode=tools -jar your-application.jar help <command>to get more details.
If you have used layers.enabled = false in your Gradle build file or <layers><enabled>false</enabled></layers> in your Maven pom.xml, please note that disabling layers no longer prevents the inclusion of the jarmode JAR. Use includeTools on the BootJar or BootWar task or <configuration><includeTools>false</includeTools></configuration> on the spring-boot-maven-plugin for that.
The virtual threads support for Undertow has been reverted, as it leaks memory. See #39812 for details.
Resources can now be loaded as Base64 encoded text values using a base64: prefix.
This can be useful with resources such as SSL certificates, as in this example:
spring:
ssl:
bundle:
pem:
mybundle:
keystore:
certificate: "base64:LS0tLS1CRUdJTi..."
private-key: "base64:QmFnIEF0dHJpYn..."The spring-boot-actuator module now includes a new SBOM endpoint.
By default the endpoint will server META-INF/sbom/bom.json or META-INF/sbom/application.cdx.json files located in your jar.
Additional configuration has also been provided in the spring-boot-parent-starter POM to make SBOM plugins easier to configure.
More documentation on the feature will be added in our RC1 release.
The Spring Boot documentation in the process of being migrated to Antora. When complete, this will provide more structure as well as better search capabilities.
Currently documentation for Spring Boot 3.3.0-M3 has not been published. We hope to do so soon, but in the meantime please use the 3.3.0-SNAPSHOT documentation links.
Spring Boot 3.3.0-M3 moves to new versions of several Spring projects:
Numerous third-party dependencies have also been updated, some of the more noteworthy of which are the following:
Apart from the changes listed above, there have also been lots of minor tweaks and improvements including:
-
jakarta.inject:jakarta.inject-apiis now included in Spring Boot’s dependency management. -
The date format of the
git-commit-id-maven-pluginhas been changed toyyyy-MM-dd’T’HH:mm:ssXXXto allow reproducible builds. See #39606 for details. -
The
spring-boot-starter-jettyno longer includesjetty-jndiby default. If you need JNDI support, please addorg.eclipse.jetty:jetty-jndito your dependencies. -
On Windows it’s now possible to start the application with
mvn spring-boot:runeven if it has a gazillion dependencies. Before 3.3.0 it would fail with a "The filename or extension is too long" exception.
-
-Djarmode=layertools extractin favor of-Djarmode=tools extract --layers -
-Djarmode=layertools listin favor of-Djarmode=tools list-layers -
layers.includeLayerToolson theBootJarandBootWartask in favor ofincludeTools. -
<layers><enabled>…</enabled></layers>in favor of<includeTools>…</includeTools>