# spring-boot 2.7 更新记录

# <span>Spring Boot 2.7 发行说明</span>

<div class="mt-2 mt-md-1 pb-3 gh-header-meta" id="bkmrk-%E5%AE%89%E8%BF%AA%C2%B7%E5%A8%81%E5%B0%94%E9%87%91%E6%A3%AE%E7%BC%96%E8%BE%91%E4%BA%86%E6%AD%A4%E9%A1%B5%E9%9D%A21%E6%9C%8820%E6%97%A5%C2%A0%C2%B7"><span>安迪·威尔金森编辑了此页面</span><span>1月20日</span><span> · </span>[<span>33 次修订</span>](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes/_history)</div>### <svg aria-hidden="true" class="octicon octicon-triangle-right js-wiki-sidebar-toggle-display" data-view-component="true" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span> 页数</span><span class="Counter Counter--primary" data-view-component="true" title="196"><span>196</span></span>

# <span>页数</span>

[**<span>家</span>**](https://github.com/spring-projects/spring-boot/wiki)

[**<span>支持的版本</span>**](https://github.com/spring-projects/spring-boot/wiki/Supported-Versions)

## <span>发行说明</span>

[**<span>v3.1</span>**](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.1-Release-Notes)

[**<span>v3.0</span>**](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes)

[**<span>v2.7</span>**](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes)

[**<span>旧版本</span>**](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Older-Release-Notes)

## <span>迁移指南</span>

[**<span>v2.7 → v3.0</span>**](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide)

[**<span>v2.4+ 配置数据</span>**](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Config-Data-Migration-Guide)

[**<span>v1.5 → v2.0</span>**](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide)

## <span>帮助</span>

[**<span>配置绑定</span>**](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Configuration-Binding)

[**<span>IDE 绑定功能</span>**](https://github.com/spring-projects/spring-boot/wiki/IDE-binding-features)

[**<span>基于 Spring Boot 构建</span>**](https://github.com/spring-projects/spring-boot/wiki/Building-On-Spring-Boot)

[**<span>使用 GraalVM 进行 Spring Boot</span>**](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-with-GraalVM)

## <span>开发流程</span>

[**<span>使用代码</span>**](https://github.com/spring-projects/spring-boot/wiki/Working-with-the-Code)

[**<span>团队实践</span>**](https://github.com/spring-projects/spring-boot/wiki/Team-Practices)

[**<span>使用 Git 分支</span>**](https://github.com/spring-projects/spring-boot/wiki/Working-with-Git-branches)

[**<span>合并拉取请求</span>**](https://github.com/spring-projects/spring-boot/wiki/Merging-Pull-Requests)

[**<span>有用的 Git 别名</span>**](https://github.com/spring-projects/spring-boot/wiki/Useful-git-aliases)

[**<span>GitHub 问题</span>**](https://github.com/spring-projects/spring-boot/wiki/GitHub-Issues)

[**<span>Maven POM 文件</span>**](https://github.com/spring-projects/spring-boot/wiki/Maven-POM-Files)

[**<span>性能调优</span>**](https://github.com/spring-projects/spring-boot/wiki/Performance-Tuning)

[**<span>生成 SSL 密钥库</span>**](https://github.com/spring-projects/spring-boot/wiki/Generating-SSL-KeyStores)

[**<span>弃用</span>**](https://github.com/spring-projects/spring-boot/wiki/Deprecations)

[**<span>创建新的维护分支</span>**](https://github.com/spring-projects/spring-boot/wiki/Creating-A-New-Maintenance-Branch)

##### <span>在本地克隆此 wiki</span>

<div class="mt-4" id="bkmrk-"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-sidebar" data-view-component="true"><div class="wiki-rightbar"><div class="width-full input-group"><svg aria-hidden="true" class="octicon octicon-copy" data-view-component="true" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg></div></div></div><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body">  
</div></div></div></div></div></div># <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Spring Boot 2.7 发行说明</span>

## <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>从 Spring Boot 2.6 升级</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>@SpringBootTest 属性源优先级</span>

`@SpringBootTest`<span>使用属性</span>`properties`<span>或注释添加的测试属性源</span>`@TestPropertySource`<span>现在添加到命令行属性源上方。</span>`@SpringBootTest`<span>如果您遇到了同时使用</span>`properties`<span>and （并且具有相同属性名称）的情况</span>`args`<span>，您可能需要进行更改。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>新的飞行路线模块</span>

<span>Spring Boot 2.7 升级到 Flyway 8.5（从 8.0）。自8.0版本以来，Flyway对多种数据库的支持被提取到新的模块中：</span>

<div class="mt-4" id="bkmrk-flyway-firebird%EF%BC%88%E7%81%AB%E9%B8%9F%EF%BC%89-"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div>  
</div><div>- `flyway-firebird`<span>（火鸟）</span>
- `flyway-mysql`<span>（MariaDB 和 MySQL）</span>
- `flyway-sqlserver`<span>（SQL 服务器）</span>

</div><div>  
</div></div></div></div></div></div></div></div></div></div><span>如果您使用 Flyway 管理上述数据库之一的架构，请添加对相应新模块的依赖项。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>H2 2.1</span>

<span>Spring Boot 2.7 已升级至 H2 2.1.120。H2 2.x 向后不兼容，并修复了许多安全漏洞。有关更改的详细信息以及如何处理升级，请参阅</span>[<span>H2 更改日志</span>](http://www.h2database.com/html/changelog.html)<span>和</span>[<span>迁移指南。</span>](http://www.h2database.com/html/migration-to-v2.html)

#### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>乔奥Q</span>

<span>没有与 Java 8 和 H2 2.x 兼容的 jOOQ 开源版本。如果您使用的是 Java 11，请考虑使用该</span>`jooq.version`<span>属性升级到 jOOQ 3.16 或更高版本。如果您使用的是 Java 8 并且无法升级，请考虑购买 jOOQ Professional Edition，从 H2 迁移到另一个数据库，或者作为最后的手段，降级到 H2 1.4.x。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Microsoft SQL Server JDBC 驱动器 10</span>

<span>Spring Boot 2.7 已将 MSSQL 驱动程序从 v9 升级到 v10。更新后的驱动程序现在默认启用加密，这可能会破坏现有应用程序。</span>[<span>您可以在本文</span>](https://thewindowsupdate.com/2022/02/01/jdbc-driver-10-2-for-sql-server-released/)<span>的“重大更改”部分中了解有关更改的信息。</span>

<span>建议的建议是在服务器上安装受信任的证书或更新 JDBC 连接 URL 以包含</span>`encrypt=false`<span>.</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>好的HTTP 4</span>

<span>由于 OkHttp 3 不再维护，Spring Boot 2.7 已升级到 OkHTTP 4。作为此升级的一部分，用于控制 OkHttp 版本的属性已从 更改</span>`okhttp3.version`<span>为</span>`okhttp.version`<span>。</span>

<span>OkHttp 4 旨在向后兼容 OkHttp 3。如果您的应用程序不是这种情况，或者由于其他原因希望继续使用 OkHttp 3，请</span>`okttp.version`<span>在 build.gradle 文件中配置该属性。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>删除了 netty-tcnative 的单独依赖管理</span>

<span>单独的依赖管理</span>`netty-tcnative`<span>已被删除，取而代之的是 Netty 的 bom 提供的依赖管理。这可以确保 的版本</span>`netty-tcnative`<span>与 Netty 默认使用的版本一致。由于此更改，该</span>`netty-tcnative.version`<span>属性不能再用于覆盖</span>`netty-tcnative`<span>. 仍然可以通过提供自己的依赖管理来覆盖该版本，但建议它与 Netty 的默认版本保持一致。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg>`spring.mongodb.embedded.features`<span>配置属性已删除</span>

<span>嵌入式 Mongo 3.4 已放弃对配置 Mongo 功能的支持。反映这一点的是，</span>`spring.mongodb.embedded.features`<span>配置属性已被删除。对于指定功能来更改用于启动 Mongo 的命令行的高级配置，</span>`MongodConfig`<span>应提供自定义 bean。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Servlet 特定的 Mustache 属性</span>

<span>以下特定于 Servlet 的 Mustache 相关属性已被弃用：</span>

<div class="mt-4" id="bkmrk-spring.mustache.allo"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div>  
</div><div>- `spring.mustache.allow-request-override`
- `spring.mustache.allow-session-override`
- `spring.mustache.cache`
- `spring.mustache.content-type`
- `spring.mustache.expose-request-attributes`
- `spring.mustache.expose-session-attributes`
- `spring.mustache.expose-spring-macro-helpers`

</div><div>  
</div></div></div></div></div></div></div></div></div></div><span>已引入以下替代品：</span>

<div class="mt-4" id="bkmrk-spring.mustache.serv"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div>  
</div><div>- `spring.mustache.servlet.allow-request-override`
- `spring.mustache.servlet.allow-session-override`
- `spring.mustache.servlet.cache`
- `spring.mustache.servlet.content-type`
- `spring.mustache.servlet.expose-request-attributes`
- `spring.mustache.servlet.expose-session-attributes`
- `spring.mustache.servlet.expose-spring-macro-helpers`

</div></div><div>  
</div></div></div></div></div></div></div></div></div>### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>自动配置的 ReactiveElasticsearchTemplate 上的默认索引选项</span>

<span>自动配置的默认索引选项</span>`ReactiveElasticsearchTemplate`<span>已更改，以使其与 Spring Data Elasticsearch 保持一致。以前，默认值为</span>`strictExpandOpenAndForbidClosed`<span>. 他们现在</span>`strictExpandOpenAndForbidClosedIgnoreThrottled`<span>。要恢复旧的索引选项，请定义您自己的</span>`reactiveElasticsearchTemplate`<span>bean：</span>

<div class="mt-4" id="bkmrk--0"><div class="mt-4"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div>  
</div><div><div><div class="highlight highlight-source-java notranslate position-relative overflow-auto"></div></div></div></div></div></div></div></div></div></div></div></div></div>```
@Bean
ReactiveElasticsearchTemplate reactiveElasticsearchTemplate(ReactiveElasticsearchClient client,
        ElasticsearchConverter converter) {
    ReactiveElasticsearchTemplate template = new ReactiveElasticsearchTemplate(client, converter);
    template.setIndicesOptions(IndicesOptions.strictExpandOpenAndForbidClosed());
    return template;
}
```

<div class="mt-4" id="bkmrk--1"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div><div><div class="highlight highlight-source-java notranslate position-relative overflow-auto"></div></div></div></div><div>  
</div></div></div></div></div></div></div></div></div>### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>MongoDB 属性优先级</span>

<span>以前，如果</span>`spring.data.mongodb.uri`<span>与任何等效的单独属性（例如</span>`spring.data.mongodb.host`<span>和 ）一起配置</span>`spring.data.mongodb.port`<span>，则会引发异常。该</span>`uri`<span>属性现在优先于任何单独的属性 -</span>`spring.data.mongodb.uri`<span>设置时它们将被忽略。这使行为与其他类似属性（例如</span>`spring.redis.url`<span>.</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>在 Maven 进程中运行您的应用程序</span>

<span>Maven 插件的目标</span>`spring-boot:run`<span>是</span>`spring-boot:start`<span>在默认处理的分叉中运行您的应用程序。可以使用</span>`fork`<span>插件的属性来禁用此行为。该属性现已弃用，没有替代品。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>有序退出代码生成器</span>

`ExitCodeGenerator`<span>现在根据其</span>`Ordered`<span>实现和</span>`@Order`<span>注释进行排序。使用生成的第一个非零退出代码。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>指标标签键已重命名</span>

<span>中的公制标签键已</span>`camelCase`<span>重命名，以符合 Micrometer 的建议，即使用全部小写字母和</span>`.`<span>分隔符。以下指标和标签键受到影响：</span>

<div class="mt-4" id="bkmrk-%E5%85%AC%E5%88%B6-%E6%97%A7%E6%A0%87%E7%AD%BE%E9%94%AE-%E6%96%B0%E6%A0%87%E7%AD%BE%E9%94%AE-applica"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div>  
</div><table role="table"><colgroup><col></col><col></col><col></col></colgroup><thead><tr><th><span>公制</span></th><th><span>旧标签键</span></th><th><span>新标签键</span></th></tr></thead><tbody><tr><td>`application.ready.time`

</td><td>`main-application-class`

</td><td>`main.application.class`

</td></tr><tr><td>`application.started.time`

</td><td>`main-application-class`

</td><td>`main.application.class`

</td></tr><tr><td>`cache.*`

</td><td>`cacheManager`

</td><td>`cache.manager`

</td></tr><tr><td>`http.client.requests`

</td><td>`clientName`

</td><td>`client.name`

</td></tr></tbody></table>

<div>  
</div></div></div></div></div></div></div></div></div></div><span>如果您需要恢复以前的名称，请定义一个实现修改标签键的方法</span>`MeterFilter`<span>的 bean 。</span>`map(Id)`

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>已弃用对 Elasticsearch 的 RestHighLevelClient 的支持</span>

<span>Elasticsearch 已弃用其</span>`RestHighLevelClient`<span>. 与此一致，Spring Boot 的自动配置</span>`RestHighLevelClient`<span>已被弃用。</span>`RestClient`<span>如果可能，应使用自动配置的低级别。或者，考虑手动配置</span>[<span>新客户端</span>](https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/migrate-hlrc.html)<span>。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>R2DBC 驱动程序更改</span>

<span>在</span>[<span>Borca 版本</span>](https://r2dbc.io/2022/02/04/r2dbc-borca-released)`r2dbc-postgresql`<span>中， PostgreSQL 驱动程序的组 ID已从 更改</span>`io.r2dbc`<span>为</span>`org.postgresql`<span>。</span>`r2dbc-mysql`<span>，MySQL 的驱动程序已被删除。考虑用作</span>`r2dbc-mariadb`<span>替代品。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>从 WebSecurityConfigurerAdapter 迁移到 SecurityFilterChain</span>

<span>Spring Boot 2.7 升级到 Spring Security 5.7，后者已弃用</span>`WebSecurityConfigurerAdapter`<span>. 在不使用或使用 Spring Boot 的切片测试（例如 ）来</span>[<span>配置 Spring Security</span>`WebSecurityConfigurerAdapter`](https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter)`@WebMvcTest`<span>时，您可能需要对应用程序进行一些更改，以便通过安全配置类使您的</span>`SecurityFilterChain`<span>bean 可用于测试。有关更多详细信息，</span>`@Import`<span>请参阅</span>[<span>参考文档。</span>](https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/howto.html#howto.testing.slice-tests)

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>使用 Maven Shade 插件和 Gradle Shadow 插件构建 Jars</span>

<span>Spring Boot 2.7 改变了自动配置和管理上下文类的发现方式。它们现在分别在名为</span>`META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports`<span>和 的 文件中声明</span>`META-INF/spring/org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration.imports`<span>。</span>

#### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Maven Shade插件的配置</span>

<span>如果您使用的是</span>`maven-shade-plugin`<span>并且不依赖于</span>`spring-boot-starter-parent`<span>，请添加以下</span>`AppendingTransformer`<span>配置：</span>

<div class="mt-4" id="bkmrk--2"><div class="mt-4"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div><div>  
</div><div><div class="highlight highlight-text-xml notranslate position-relative overflow-auto"></div></div></div></div></div></div></div></div></div></div></div></div></div>```
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  <resource>META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  <resource>META-INF/spring/org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration.imports</resource>
</transformer>
```

<div class="mt-4" id="bkmrk--3"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div><div><div class="highlight highlight-text-xml notranslate position-relative overflow-auto"></div></div></div><div>  
</div></div></div></div></div></div></div></div></div></div>#### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Gradle Shadow 插件的配置</span>

<span>添加以下配置以附加文件</span>`.imports`<span>：</span>

<div class="mt-4" id="bkmrk--4"><div class="mt-4"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div><div>  
</div><div><div class="highlight highlight-source-groovy notranslate position-relative overflow-auto"></div></div></div></div></div></div></div></div></div></div></div></div></div>```
tasks.withType(ShadowJar).configureEach {
    append("META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports")
    append("META-INF/spring/org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration.imports")
}
```

<div class="mt-4" id="bkmrk--5"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div><div><div class="highlight highlight-source-groovy notranslate position-relative overflow-auto"></div></div></div></div><div>  
</div></div></div></div></div></div></div></div></div>### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>MIME拉</span>

<span>的依赖管理</span>`org.jvnet.mimepull:mimepull`<span>已被删除。如果您已声明对 的依赖项</span>`mimepull`<span>，请将满足您需要的版本添加到该声明中。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>已弃用对 Hazelcast 3.0 的支持</span>

<span>Hazelcast 3 支持已弃用。如果仍然需要降级到 Hazelcast 3，</span>`hazelcast-client`<span>应该添加到类路径中来配置客户端。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Spring MVC</span>`requestMappingHandlerMapping`<span>不再是主要的</span>

<span>从Spring Framework 5.1开始，Spring MVC已经支持多个</span>`RequestMappingHandlerMapping`<span>bean。为了与此保持一致，Spring Boot 2.7 不再将 MVC 的主</span>`requestMappingHandlerMapping`<span>bean 定义为</span>`@Primary`<span>. 万一您正在注入</span>`RequestMappingHandlerMapping`<span>，如果上下文中有多个此类 bean，您现在需要使用它</span>`@Qualifier`<span>来选择您希望注入的候选者。或者，可以使用 注入所有候选者</span>`List<RequestMappingHandlerMapping>`<span>。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>MySQL JDBC 驱动程序</span>

<span>MySQL JDBC 驱动程序的坐标已更改。</span>`com.mysql:mysql-connector-j`<span>8.0.31还发布到</span>`mysql:mysql-connector-java`<span>. 在 8.0.32 及更高版本中，它仅发布到</span>`com.mysql:mysql-connector-j`<span>. Spring Boot 2.7.8 升级至 8.0.32。如果您使用 MySQL JDBC 驱动程序，请在升级到 Spring Boot 2.7.8 及更高版本时相应更新其坐标。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Spring Boot 2.5 弃用</span>

<span>Spring Boot 2.5 中已弃用的类、方法和属性已在此版本中删除。请确保在升级之前没有调用已弃用的方法。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>最低要求变更</span>

<span>没有任何。</span>

## <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>新的和值得注意的</span>

<div class="mt-4" id="bkmrk-%E6%8F%90%E7%A4%BA-%E6%A3%80%E6%9F%A5%E9%85%8D%E7%BD%AE%E6%9B%B4%E6%94%B9%E6%97%A5%E5%BF%97%E4%BB%A5%E8%8E%B7%E5%8F%96%E9%85%8D%E7%BD%AE%E6%9B%B4%E6%94%B9%E7%9A%84%E5%AE%8C"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><table role="table"><tbody><tr><td><div><span>提示</span></div></td><td><span>检查</span>[<span>配置更改日志</span>](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7.0-Configuration-Changelog)<span>以获取配置更改的完整概述。</span></td></tr></tbody></table>

</div><div>  
</div></div></div></div></div></div></div></div></div>### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>新的 Spring GraphQL 启动器</span>

<span>Spring Boot 2.7通过新的启动器提供了对</span>[<span>Spring GraphQL 项目</span>](https://github.com/spring-projects/spring-graphql)`spring-boot-starter-graphql`<span>的支持。</span>[<span>您可以在Spring Boot 参考文档的 GraphQL 部分</span>](https://docs.spring.io/spring-boot/docs/2.7.x-SNAPSHOT/reference/html/web.html#web.graphql)<span>找到更多信息。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>支持 RabbitStreamTemplate</span>

<span>如果使用该属性设置流名称，则A</span>`RabbitStreamTemplate`<span>会自动配置</span>`spring.rabbitmq.stream.name`<span>。提供了A </span>`RabbitStreamTemplateConfigurer`<span>，类似于</span>`RabbitTemplateConfigurer`<span>自定义附加实例，同时保留自动配置。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Hazelcast</span>`@SpringAware`<span>支持</span>

`SpringManagerContext`<span>现在默认使用自动配置的 Hazelcast 嵌入式服务器。这使得将 Spring 托管 bean 注入到 Hazelcast 实例化的对象中成为可能。还引入了回调</span>`HazelcastConfigCustomizer`<span>接口，可用于进一步调整 Hazelcast 服务器配置。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>信息端点中的操作系统信息</span>

<span>可以</span>`OsInfoContributor`<span>公开有关应用程序运行的操作系统的一些信息：</span>

<div class="mt-4" id="bkmrk--6"><div class="mt-4"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div>  
</div><div><div class="highlight highlight-source-json notranslate position-relative overflow-auto"></div></div></div></div></div></div></div></div></div></div></div></div>```
{
  "os": {
    "name": "Linux",
    "version": "5.4.0-1051-gke",
    "arch": "amd64"
  }
}
```

<div class="mt-4" id="bkmrk--7"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div><div class="highlight highlight-source-json notranslate position-relative overflow-auto"></div></div><div>  
</div></div></div></div></div></div></div></div></div></div><span>默认情况下禁用此新贡献者。可以使用该属性来启用它</span>`management.info.os.enabled`<span>。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Info 端点中的 Java 供应商信息</span>

<span>现有的</span>`JavaInfoContributor`<span>已得到改进，提供了供应商信息的专用部分，包括供应商特定的版本。它现在不是一个顶级的</span>`vendor`<span>简单属性，而是一个具有</span>`name`<span>和</span>`version`<span>属性的专用对象：</span>

<div class="mt-4" id="bkmrk--8"><div class="mt-4"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div>  
</div><div><div class="highlight highlight-source-json notranslate position-relative overflow-auto"></div></div></div></div></div></div></div></div></div></div></div></div>```
{
  "java": {
    "vendor": {
       "name": "Eclipse Adoptium",
        "version": "Temurin-17.0.1+12"
    },
    "..."
}
```

<div class="mt-4" id="bkmrk--9"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div><div class="highlight highlight-source-json notranslate position-relative overflow-auto"></div></div><div>  
</div></div></div></div></div></div></div></div></div></div><span>请注意，并非所有供应商都会公开</span>`java.vendor.version`<span>系统属性，因此该</span>`version`<span>属性可能是</span>`null`<span>.</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>在 RSocket 处理程序方法中访问经过身份验证的主体</span>

<span>RSocket 处理程序方法现在可以注入</span>`@Authenticated` `Principal`<span>：</span>

<div class="mt-4" id="bkmrk--10"><div class="mt-4"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div>  
</div><div><div class="highlight highlight-source-java notranslate position-relative overflow-auto"></div></div></div></div></div></div></div></div></div></div></div></div>```
@MessageMapping ("test") 
Mono<String> hello (@Authenticated Principal p){ 
    return Mono.just ("Hello, "  + p.getName()) ;
}
```

<div class="mt-4" id="bkmrk--11"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div><div class="highlight highlight-source-java notranslate position-relative overflow-auto"></div></div></div><div>  
</div></div></div></div></div></div></div></div></div>### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>不使用 OIDC SDK 的不透明令牌自省</span>

<span>如果您在 OAuth2 资源服务器中使用不透明令牌内省，则自动配置的内省器不再需要依赖于</span>`com.nimbusds:oauth2-oidc-sdk`<span>. 根据 SDK 的其他用途，您也许可以从应用程序中删除依赖项。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>@DataCouchbaseTest</span>

`@DataCouchbaseTest`<span>引入了用于测试使用 Spring Data Couchbase 的应用程序的新注释。有关详细信息，请参阅</span>[<span>更新的参考文档</span>](https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.testing.spring-boot-applications.autoconfigured-spring-data-couchbase)<span>。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>@DataElasticsearchTest</span>

`@DataElasticsearchTest`<span>引入了用于测试使用 Spring Data Elasticsearch 的应用程序的新注释。有关详细信息，请参阅</span>[<span>更新的参考文档</span>](https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.testing.spring-boot-applications.autoconfigured-spring-data-elasticsearch)<span>。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>SAML2 注销的自动配置</span>

<span>如果您使用 Spring Security 的 SAML2 支持，则可以通过配置属性配置 RP 发起或 AP 发起的注销。有关详细信息，请参阅</span>[<span>更新的参考文档</span>](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#web.security.saml2.relying-party)<span>。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>自动配置的更改</span>

#### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>自动配置注册</span>

<span>如果您创建了自己的自动配置，则应将注册从密钥</span>`spring.factories`<span>下移至</span>`org.springframework.boot.autoconfigure.EnableAutoConfiguration`<span>名为</span>`META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports`<span>. 每行包含自动配置类的完全限定名称，而不是单个逗号分隔的列表。有关示例，请参阅</span>[<span>包含的自动配置。</span>](https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports)

<span>为了向后兼容，</span>`spring.factories`<span>仍将保留 中的条目。</span>

#### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>新的@AutoConfiguration注释</span>

`@AutoConfiguration`<span>引入了新的注释。它应用于注释新</span>`META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports`<span>文件中列出的顶级自动配置类，替换</span>`@Configuration`<span>. 嵌套在类中或由类导入的配置类应继续像以前一样</span>`@AutoConfiguration`<span>使用。</span>`@Configuration`

<span>为了您的方便，还支持通过、和属性进行</span>`@AutoConfiguration`<span>自动配置排序。这可以用作 和 的替代品。</span>`after``afterNames``before``beforeNames``@AutoConfigureAfter``@AutoConfigureBefore`

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>测试切片配置</span>

<span>如果您创建了自己的测试切片，则应将注册从 移动</span>`spring.factories`<span>到 下的新位置</span>`META-INF/spring/<name of your test slice annotation>.imports`<span>。该格式与“自动配置注册”部分中描述的新文件相同，请参见上文。</span>

[<span>有关示例，</span>](https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/)<span>请参阅随附的测试切片。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>故障分析器注入</span>

`FailureAnalyzer`<span>现在，实现可以通过提供一个将这些值中的一个或两个值作为参数的构造函数来访问当前应用程序上下文的</span>`BeanFactory`<span>和</span>`Environment`<span>。</span>`BeanFactory`<span>对通过实现注入</span>`BeanFactoryAware`<span>和</span>`Environment`<span>通过</span>`EnvironmentAware`<span>在 a 中实现注入的支持</span>`FailureAnalyzer`<span>已弃用，并将在未来版本中删除。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Redis Sentinel 用户名支持</span>

<span>已使用该属性添加了对指定用于向 Sentinel 进行身份验证的用户名的支持</span>`spring.redis.sentinel.username`<span>。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>覆盖内置清理</span>

`SanitizingFunction`<span>beans 现在按顺序调用，一旦函数更改了 .bean 的值，就会停止</span>`SanitizableData`<span>。如果没有</span>`SanitizingFunction`<span>Bean 清理该值，则会执行内置的基于键的清理。函数通过其</span>`@Order`<span>注释或</span>`Ordered`<span>实现进行排序。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Docker 镜像构建</span>

#### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Podman 支持</span>

<span>在使用 Cloud Native Buildpacks 构建映像时，Maven 和 Gradle 插件现在支持使用 Podman 容器引擎作为 Docker 引擎的替代方案。</span>

<span>有关更多详细信息，请参阅更新的</span>[<span>Gradle</span>](https://docs.spring.io/spring-boot/docs/2.7.0-SNAPSHOT/gradle-plugin/reference/htmlsingle/#build-image.examples.docker.podman)<span>和</span>[<span>Maven参考文档。</span>](https://docs.spring.io/spring-boot/docs/2.7.0-SNAPSHOT/maven-plugin/reference/htmlsingle/#build-image.examples.docker.podman)

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Cache2k 支持</span>

<span>添加了</span>[<span>Cache2k</span>](https://cache2k.org/)<span>的依赖管理和自动配置。可以通过定义</span>`Cache2kBuilderCustomizer`<span>bean 来自定义默认缓存设置。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Jackson Mixins 的简化注册</span>

<span>Jackson 的自动配置现在将扫描应用程序的包中以</span>`@JsonMixin`<span>. 找到的任何类都会自动注册为具有自动配置的 mixin </span>`ObjectMapper`<span>。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>使用 PEM 编码证书的 Web 服务器 SSL 配置</span>

<span>嵌入式 Web 服务器可以配置为使用带有 PEM 编码证书和私钥文件的 SSL，使用属性</span>`server.ssl.certificate`<span>和</span>`server.ssl.certificate-private-key`<span>，以及可选的</span>`server.ssl.trust-certificate`<span>和</span>`server.ssl.trust-certificate-private-key`<span>。可以使用类似的</span>`management.server.ssl.*`<span>属性来保护管理端点。请参阅</span>[<span>文档</span>](https://docs.spring.io/spring-boot/docs/2.7.0-SNAPSHOT/reference/htmlsingle/#howto.webserver.configure-ssl)<span>中的示例。这是作为使用 Java KeyStore 文件配置 SSL 的替代方法提供的。</span>

### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>依赖升级</span>

<span>Spring Boot 2.7 迁移至多个 Spring 项目的新版本：</span>

<div class="mt-4" id="bkmrk-%E6%98%A5%E5%AD%A3%E6%95%B0%E6%8D%AE-2021.2-%E6%98%A5%E5%AD%A3-hateo"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div>  
</div><div>- [<span>春季数据 2021.2</span>](https://github.com/spring-projects/spring-data-commons/wiki/Release-Train-2021.2-%28Raj%29-Release-Notes)
- [<span>春季 HATEOAS 1.5</span>](https://github.com/spring-projects/spring-hateoas/releases/tag/1.5.0)
- [<span>春季 LDAP 2.4</span>](https://github.com/spring-projects/spring-ldap/releases/tag/2.4.0)
- [<span>春季安全5.7</span>](https://github.com/spring-projects/spring-security/releases/tag/5.7.0)
- <span>春季会议 2021.2</span>

</div><div>  
</div></div></div></div></div></div></div></div></div></div><span>许多第三方依赖项也已更新，其中一些更值得注意的如下：</span>

<div class="mt-4" id="bkmrk-%E5%BC%B9%E6%80%A7%E6%90%9C%E7%B4%A2-7.17-%E9%A3%9E%E8%B7%AF8.5-h2-2"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div>  
</div><div>- <span>弹性搜索 7.17</span>
- <span>飞路8.5</span>
- <span>H2 2.1</span>
- [<span>榛卡斯特 5.0</span>](https://docs.hazelcast.com/hazelcast/5.0/release-notes.html)
- [<span>无限跨度13</span>](https://infinispan.org/blog/2021/10/12/infinispan-13-final)
- <span>杰森2.9</span>
- <span>Json路径2.7</span>
- <span>卡夫卡3.1</span>
- <span>玛丽亚数据库3.0</span>
- [<span>千分尺1.9</span>](https://github.com/micrometer-metrics/micrometer/releases/tag/v1.9.0)
- <span>MongoDB 4.5</span>
- <span>好的HTTP 4.9</span>
- <span>放心休息 4.5</span>
- [<span>R2DBC</span>`Borca`](https://r2dbc.io/2022/02/04/r2dbc-borca-released)

</div></div><div>  
</div></div></div></div></div></div></div></div></div>### <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>各种各样的</span>

<span>除了上面列出的更改之外，还进行了许多细微的调整和改进，包括：</span>

<div class="mt-4" id="bkmrk-kafkaidlepartitionev"><div class="mt-4"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content"><div class="markdown-body"><div><div><div><div>  
</div><div>- <span>Kafka</span>`idlePartitionEventInterval`<span>可以使用该</span>`spring.kafka.listener.idle-partition-event-interval`<span>属性进行配置。</span>
- `KafkaTemplate` `transactionIdPrefix`<span>可以使用属性来配置属性</span>`spring.kafka.template.transaction-id-prefix`<span>。</span>
- <span>Netty</span>`maxKeepAliveRequests`<span>可以使用该</span>`server.netty.max-keep-alive-requests`<span>属性进行配置。</span>
- `@DataJdbcTest`<span>自动扫描</span>`AbstractJdbcConfiguration`<span>豆子。</span>
- <span>使用 SAML 2.0 登录时， bean</span>`UserDetailsService`<span>不再自动配置。</span>
- <span>可以使用该</span>`spring.batch.jdbc.isolation-level-for-create`<span>属性配置Spring Batch的事务隔离级别。</span>
- <span>用于记录 Spring MVC 指标的过滤器现在可以通过定义您自己的</span>`FilterRegistrationBean<WebMvcMetricsFilter>`<span>bean 来替换。</span>
- <span>的 ID</span>`DatabaseDriver.MARIADB`<span>已更改</span>`mysql`<span>为</span>`mariadb`
- <span>in返回</span>`InputStream`<span>的现在实现了.</span>`RandomAccessDataFile``spring-boot-loader``available()`
- <span>Spring Kafka</span>`immediateStop`<span>可以使用该</span>`spring.kafka.listener.immediate-stop`<span>属性进行配置。</span>
- <span>新属性</span>`spring.mustache.reactive.media-types`<span>可以用于配置反应式 Mustache 视图支持的媒体类型。</span>
- <span>现在，当Elasticsearch</span>`RestClientBuilder`<span>和beans位于类路径中</span>`RestClient`<span>时，会自动配置。</span>`elasticsearch-rest-client`<span>如果</span>`elasticsearch-rest-high-level-client`<span>位于类路径上，</span>`RestHighLevelClient`<span>bean 仍将像以前一样自动配置，但请注意，</span>`RestHighLevelClient`<span>现在已弃用对 的支持。</span>

</div></div></div></div><div>  
</div></div></div></div></div></div></div>## <svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"></svg><span>Spring Boot 2.7 中的弃用</span>

<div class="mt-4" id="bkmrk-spring.factories%E4%B8%8D%E6%8E%A8%E8%8D%90%E4%BB%8E"><div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end" data-view-component="true"><div class="Layout-main" data-view-component="true"><div class="gollum-asciidoc-content" id="bkmrk-spring.factories%E4%B8%8D%E6%8E%A8%E8%8D%90%E4%BB%8E-0"><div class="markdown-body"><div><div><div>- `spring.factories`<span>不推荐从加载自动配置。请参阅上文了解更多详情。</span>
- `DatabaseDriver.GAE`
- <span>下的属性</span>`spring.security.saml2.relyingparty.registration.{id}.identityprovider`<span>已移至</span>`spring.security.saml2.relyingparty.registration.{id}.assertingparty`<span>. 使用旧的属性名称会导致启动时日志消息处于 WARN 级别。</span>

</div></div></div></div></div></div></div></div>