-
Notifications
You must be signed in to change notification settings - Fork 40.8k
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 extract
This 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-api
is now included in Spring Boot’s dependency management. -
The date format of the
git-commit-id-maven-plugin
has been changed toyyyy-MM-dd’T’HH:mm:ssXXX
to allow reproducible builds. See #39606 for details. -
The
spring-boot-starter-jetty
no longer includesjetty-jndi
by default. If you need JNDI support, please addorg.eclipse.jetty:jetty-jndi
to your dependencies. -
On Windows it’s now possible to start the application with
mvn spring-boot:run
even 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 extract
in favor of-Djarmode=tools extract --layers
-
-Djarmode=layertools list
in favor of-Djarmode=tools list-layers
-
layers.includeLayerTools
on theBootJar
andBootWar
task in favor ofincludeTools
. -
<layers><enabled>…</enabled></layers>
in favor of<includeTools>…</includeTools>