-
Notifications
You must be signed in to change notification settings - Fork 40.7k
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.