- Notifications
You must be signed in to change notification settings - Fork 41.1k
Spring Boot 2.7.0 M2 Release Notes
For changes in earlier milestones, please refer to:
Spring Boot 2.7 has upgraded to H2 2.1.120. H2 2.x is backwards incompatible and fixes a number of security vulnerabilities. See the H2 changelog and migration guide for details of the changes and how to handle the upgrade.
As OkHttp 3 is no longer being maintained, Spring Boot 2.7 has upgraded to OkHTTP 4. As part of this upgrade, the property used to control OkHttp’s version has changed from okhttp3.version
to okhttp.version
.
OkHttp 4 is intended to be backwards compatible with OkHttp 3. If this is not the case in your application or wish to continue using OkHttp 3 for another reason, configure the okttp.version
property in your build.
Separate dependency management for netty-tcnative
has been removed in favor of the dependency management provided by Netty’s bom. This ensures that the version of netty-tcnative
will align with the version that Netty uses by default. As a result of this change, the netty-tcnative.version
property can no longer be used to override the version of netty-tcnative
. The version can still be overridden by providing your own dependency management but it is recommended that it remains aligned with Netty’s default version.
Tip | Check the configuration changelog for a complete overview of the changes in configuration. |
If you are using opaque token introspection in your OAuth2 resource server, the auto-configured introspector no longer requires a dependency on com.nimbusds:oauth2-oidc-sdk
. Depending on other usages of the SDK, you may be able to remove the dependency from your application.
A new @DataCouchbaseTest
annotation for testing applications that use Spring Data Couchbase has been introduced. See the updated reference documentation for details.
A new @DataElasticsearchTest
annotation for testing applications that use Spring Data Elasticsearch has been introduced. See the updated reference documentation for details.
If you have created your own auto-configurations, you should move the registration from spring.factories
to a new file named META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
. Each line contains the fully qualified name of the auto-configuration. See the included auto-configurations for an example.
For backwards compatibility, entries in spring.factories
will still be honored.
A new @AutoConfiguration
annotation has been introduced. It should be used to annotate top-level auto-configuration classes that are listed in the new META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
file, replacing @Configuration
. Configuration classes that are nested within or imported by an @AutoConfiguration
class should continue to use @Configuration
as before.
For your convenience, @AutoConfiguration
also supports auto-configuration ordering via the after
, afterNames
, before
and beforeNames
attributes. This can be used as a replacement for @AutoConfigureAfter
and @AutoConfigureBefore
.
If you have created your own test-slices, you should move the registration from spring.factories
to the new place under META-INF/spring/<name of your test slice annotation>.imports
. The format is the same as the new file described in the "Auto-configuration Registration" section, see above.
FailureAnalyzer
implementations can now get access to the BeanFactory
and Environment
of the current application context by providing a constructor that takes one or both of these values as a parameter. Support for injecting the BeanFactory
by implementing BeanFactoryAware
and injecting the Environment
by implementing EnvironmentAware
in a FailureAnalyzer
is deprecated and will be removed in a future release.
Support for specifying a username for authenticating to Sentinel(s) has been added using the spring.redis.sentinel.username
property.
Spring Boot 2.7.0-M2 moves to new versions of several Spring projects:
Spring Data 2021.2.0-M3
Numerous third-party dependencies have also been updated, some of the more noteworthy of which are the following:
Elasticsearch 7.17
Flyway 8.5
H2 2.1
Json 2.9
Json Path 2.7
Kafka 3.1
MariaDB 3.0
MongoDB 4.5
OkHTTP 4.9
REST Assured 4.5
Apart from the changes listed above, there have also been lots of minor tweaks and improvements including:
The
InputStream
returned byRandomAccessDataFile
inspring-boot-loader
now implementsavailable()
.Spring Kafka’s
immediateStop
is configurable using thespring.kafka.listener.immediate-stop
property.
Loading auto-configurations from
spring.factories
is deprecated. See above for more details.The Micrometer team moved the binders to a separate micrometer module named
micrometer-binders
and deprecated the old binders. To prevent split packages, the imports have changed, too. If you are using the old binders, please adjust your imports fromio.micrometer.core.instrument.binder
toio.micrometer.binder
. Spring Boot 2.7 still supports auto-configuration for the binders in the old module, but this support will be removed in Spring Boot 3.0.