You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We have moved the properties controlling the actuator metrics export. The old schema was management.metrics.export.<product>, the new one is management.<product>.metrics.export (Example: the prometheus properties moved from management.metrics.export.prometheus to management.prometheus.metrics.export). If you are using the spring-boot-properties-migrator, you will get notified at startup. See #30381 for details.
When building an application with Gradle, resolution of the name of the application?s main class has been simplified and made consistent. bootJar, bootRun, and bootWar now all resolve the name of the main class name by looking for it in the output of the main source set. This removes a small risk that the tasks may not have used the same main class name by default. If you were relying on the main class being resolved from a location outside of the main source set?s output, update your Gradle configuration to configure the main class name using the mainClass property of the springBoot DSL:
Alternatively, you can configure the classpath property of the resolveMainClassName task to search in locations other than the main source set?s output directories.
Support for properties under spring.security.saml2.relyingparty.registration.{id}.identity-provider have been removed. Use the new properties under spring.security.saml2.relyingparty.registration.{id}.asserting-party as a replacement.
Auto-configuration and dependency management for Flapdoodle embedded MongoDB has been removed. If you are using embedded MongoDB for testing, use the auto-configuration library provided by the Flapdoodle project or modify the tests to use the Testcontainers project instead of embedded MongoDB.
The default format for the date and time component of log messages for Logback and Log4j2 has changed to align with the ISO-8601 standard. The new default format yyyy-MM-dd?T?HH:mm:ss.SSSXXX uses a T to separate the date and time instead of a space character and adds the timezone offset to the end. The LOG_DATEFORMAT_PATTERN environment variable or logging.pattern.dateformat property can be used to restore the previous default value of yyyy-MM-dd HH:mm:ss.SSS.
With its 5.0 release, Pooled JMS is compatible with Jakarta EE 9. As a result, support has been reinstated and can be used with Apache Artemis by setting spring.artemis.pool.enabled to true.
Spring Boot now auto-configures an instance of ObservationRegistry for you. If micrometer-core is on the classpath, a TimerObservationHandler is registered on the ObservationRegistry, which means that every stopped Observation leads to a timer. ObservationPredicate, GlobalTagsProvider and ObservationHandler are automatically registered on the ObservationRegistry. You can use ObservationRegistryCustomizer to further customize the ObservationRegistry if you need to. See #29666 for details.
Spring Boot now auto-configures Micrometer Tracing for you. This includes support for Brave, OpenTelemetry, Zipkin and Wavefront. When using the Micrometer Observation API, finishing observations will lead to spans reported to Zipkin or Wavefront. Tracing can be controlled with properties under management.tracing. Zipkin can be configured with management.zipkin.tracing, while Wavefront uses management.wavefront. To use, for example Wavefront with Brave, these dependencies are needed:
An OtlpMeterRegistry is now auto-configured when io.micrometer:micrometer-registry-otlp is on the classpath. The meter registry can be configured using management.otlp.metrics.export.* properties.
A new configuration property, spring.kafka.listener.async-acks, for enabling async acks with Kafka has been added. To enable async acks, set the property to true. The property only applies when spring.kafka.listener.async-mode is set to manual or manual-immediate.
labels: ["upgrade:boot-recipe","3.0.0","epic"]
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0.0-M3-Release-Notes
Spring Boot 3.0.0 M3 Release Notes
For changes in earlier milestones, please refer to:
v3.0.0 M1
v3.0.0 M2
Upgrading from Spring Boot 2.x
Minimum Requirements Changes
None.
Actuator Metrics Export Properties
We have moved the properties controlling the actuator metrics export. The old schema was
management.metrics.export.<product>
, the new one ismanagement.<product>.metrics.export
(Example: the prometheus properties moved frommanagement.metrics.export.prometheus
tomanagement.prometheus.metrics.export
). If you are using thespring-boot-properties-migrator
, you will get notified at startup. See #30381 for details.Simplifed Main Class Name Resolution with Gradle
When building an application with Gradle, resolution of the name of the application?s main class has been simplified and made consistent.
bootJar
,bootRun
, andbootWar
now all resolve the name of the main class name by looking for it in the output of the main source set. This removes a small risk that the tasks may not have used the same main class name by default. If you were relying on the main class being resolved from a location outside of the main source set?s output, update your Gradle configuration to configure the main class name using themainClass
property of thespringBoot
DSL:springBoot {
mainClass = "com.example.Application"
}
Alternatively, you can configure the
classpath
property of theresolveMainClassName
task to search in locations other than the main source set?s output directories.Running Your Application in the Maven Process
The
fork
attribute ofspring-boot:run
andspring-boot:start
that was deprecated in Spring Boot 2.7 has been removed.SAML2 Relying Party Configuration
Support for properties under
spring.security.saml2.relyingparty.registration.{id}.identity-provider
have been removed. Use the new properties underspring.security.saml2.relyingparty.registration.{id}.asserting-party
as a replacement.Embedded MongoDB
Auto-configuration and dependency management for Flapdoodle embedded MongoDB has been removed. If you are using embedded MongoDB for testing, use the auto-configuration library provided by the Flapdoodle project or modify the tests to use the Testcontainers project instead of embedded MongoDB.
Logging Date Format
The default format for the date and time component of log messages for Logback and Log4j2 has changed to align with the ISO-8601 standard. The new default format
yyyy-MM-dd?T?HH:mm:ss.SSSXXX
uses aT
to separate the date and time instead of a space character and adds the timezone offset to the end. TheLOG_DATEFORMAT_PATTERN
environment variable orlogging.pattern.dateformat
property can be used to restore the previous default value ofyyyy-MM-dd HH:mm:ss.SSS
.Support for Apache Solr Removed
Support for Apache Solr has been removed as its Jetty-based client,
Http2SolrClient
, is not compatible with Jetty 11.Auto-configuration of Micrometer?s JvmInfoMetrics
Micrometer?s
JvmInfoMetrics
is now auto-configured. Any manually configuredJvmInfoMetrics
bean definition can be removed.New and Noteworthy
Tip
Check the configuration changelog for a complete overview of the changes in configuration.
Reinstated Support for REST Assured
With its 5.0 release, REST Assured is compatible with Jakarta EE 9 and Groovy 4.0. As a result, support has been reinstated.
Reinstated Support for Pooled JMS
With its 5.0 release, Pooled JMS is compatible with Jakarta EE 9. As a result, support has been reinstated and can be used with Apache Artemis by setting
spring.artemis.pool.enabled
totrue
.Auto-configuration for Micrometer Observation API
Spring Boot now auto-configures an instance of
ObservationRegistry
for you. Ifmicrometer-core
is on the classpath, aTimerObservationHandler
is registered on theObservationRegistry
, which means that every stoppedObservation
leads to a timer.ObservationPredicate
,GlobalTagsProvider
andObservationHandler
are automatically registered on theObservationRegistry
. You can useObservationRegistryCustomizer
to further customize theObservationRegistry
if you need to. See #29666 for details.Auto-configuration for Micrometer Tracing
Spring Boot now auto-configures Micrometer Tracing for you. This includes support for Brave, OpenTelemetry, Zipkin and Wavefront. When using the Micrometer Observation API, finishing observations will lead to spans reported to Zipkin or Wavefront. Tracing can be controlled with properties under
management.tracing
. Zipkin can be configured withmanagement.zipkin.tracing
, while Wavefront usesmanagement.wavefront
. To use, for example Wavefront with Brave, these dependencies are needed:implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-tracing-bridge-brave'
implementation 'io.micrometer:micrometer-tracing-reporter-wavefront'
Auto-configuration for Micrometer?s OtlpMeterRegistry
An
OtlpMeterRegistry
is now auto-configured whenio.micrometer:micrometer-registry-otlp
is on the classpath. The meter registry can be configured usingmanagement.otlp.metrics.export.*
properties.Enabling Async Acks with Apache Kafka
A new configuration property,
spring.kafka.listener.async-acks
, for enabling async acks with Kafka has been added. To enable async acks, set the property totrue
. The property only applies whenspring.kafka.listener.async-mode
is set tomanual
ormanual-immediate
.Dependency Upgrades
Spring Boot 3.0.0-M3 moves to new versions of several Spring projects:
Spring AMQP 3.0.0-M3
Spring Batch 5.0.0-M3
Spring Data 2022.0.0-M4
Spring HATEOAS 2.0.0-M3
Spring Integration 6.0.0-M3
Spring Kafka 3.0.0-M4
Spring REST Docs 3.0.0-M3
Spring Security 6.0.0-M5 (see also 6.0.0-M4)
Numerous third-party dependencies have also been updated, some of the more noteworthy of which are the following:
Flyway 8.5.11
Hibernate 5.6.9.Final
Micrometer 1.10.0-M2
Micrometer Tracing 1.0.0-M5
Netty 4.1.77.Final
Reactor Bom 2022.0.0-M2
Thymeleaf 3.1.0.M2
Tomcat 10.0.21
Miscellaneous
Apart from the changes listed above, there have also been some minor tweaks and improvements including:
Bean Validation
Configuration
can now be customised by defining aValidationConfigurationCustomizer
bean.Log4j2?s
Log4jBridgeHandler
is now used to route JUL-based logging into Log4j2 rather than routing through SLF4J.Deprecations in Spring Boot 3.0
3.0.0-M3 Deprecations in Spring Boot 3.0 #233
The properties
management.metrics.export.<product>
are deprecated, the replacement ismanagement.<product>.metrics.export
. See above for more details.The text was updated successfully, but these errors were encountered: