SpringBoot v2.5.0 发布

Spring Boot 2.5 版本说明

从Spring Boot 2.4升级

SQL脚本数据源初始化

用于支持schema.sqldata.sql脚本的基础方法在Spring Boot 2.5中被重新设计了。spring.datasource.*DataSource初始化有关的属性已被弃用,而采用新的spring.sql.init.*属性,它也可用于初始化通过R2DBC访问的SQL数据库。

新的基于脚本的SQL数据库初始化不支持对模式(DDL)和数据(DML)的变化使用单独的凭证。这降低了复杂性,并使其功能与Flyway和Liquibase一致。如果你需要为模式和数据初始化使用单独的凭证,请定义你自己的org.springframework.jdbc.datasource.init.DataSourceInitializer bean。

Hibernate and data.sql

默认情况下,data.sql脚本现在会在Hibernate初始化前运行。这使基于脚本的基本初始化的行为与Flyway和Liquibase的行为一致。如果你想使用data.sql来填充Hibernate创建的模式,将spring.jpa.defer-datasource-initialization设置为true。虽然不建议混合使用数据库初始化技术,但这也允许你在通过data.sql填充Hibernate创建的模式之前,使用schema.sql脚本来构建它。

Flyway 和 Liquibase JDBC URLs

如果你目前定义了spring.flyway.urlspring.liquidibase.url,你可能需要提供额外的usernamepassword属性。在Spring Boot的早期版本中,这些设置来自于spring.datasource属性,但对于提供自己的DataSource Bean的人来说,这证明是有问题的。

Spring Data Solr


在2021.0.0版本中,Spring Data Solr的自动配置被从Spring Data中移除,在这个版本中被移除。

Secure Info Endpoint

/info执行器端点默认不再通过网络公开。此外,如果Spring Security在classpath上,该端点默认需要认证访问。

请参考exposingsecuring执行器端点的文档,改变这些新的默认值。

默认的表达式语言(EL)实现

Spring Boot的Web和验证启动器中包含的EL实现已经改变。Tomcat的实现(org.apache.tomcat.embed.tomcat-embed-el)现在被用来代替Glassfish的参考实现(org.glassfish:jakrta.el)。

默认错误视图中的信息

默认错误视图中的messsage属性现在被移除,而不是在不显示时留空。如果你解析了错误响应的JSON,你可能需要处理丢失的项目。

如果你想让消息被包括在内,你仍然可以使用server.error.include-message属性。

记录关机钩子

我们现在默认为基于jar的应用程序注册一个日志关闭钩子,以确保日志资源在JVM退出时被释放。如果你的应用程序是以war形式部署的,那么关闭钩子就不会被注册,因为servlet容器通常处理日志问题。

大多数应用程序都需要关机钩子。然而,如果你的应用程序有复杂的上下文层次结构,那么你可能需要禁用它。你可以使用logging.register-shutdown-hook属性来做到这一点。

Gradle默认的jar和war任务

Spring Boot Gradle插件不再自动禁用标准的Gradlejarwar任务。相反,我们现在对这些任务应用一个`classifier’。

如果你喜欢禁用这些任务,参考文档包括更新的例子

Cassandra Throttling 属性

Spring Boot不再为spring.data.cassandra.request.throttler属性提供默认值。如果你依赖max-queue-sizemax-concurrent-requestsmax-requests-per seconddrain-interval,你应该设置对你的应用程序有意义的值。

定制jOOQ的DefaultConfiguration

为了简化jOOQ的DefaultConfiguration的定制,现在可以定义一个实现DefaultConfigurationCustomizer的bean。这个自定义器回调应该被用来支持定义一个或多个`*Provider’Bean,对它的支持现在已经被弃用了。

Groovy 3

Groovy的默认版本已经升级到3.x。如果你在使用Groovy的同时也在使用Spock,你也应该升级到最新的与Groovy 3.0兼容的Spock 2.0版本。或者,使用groovy.version来降级到Groovy 2.5。

最低要求的变化

用Gradle构建的项目现在需要Gradle 6.8或更高版本。

从Spring Boot 2.3和2.4删除的内容

为了反映Spring Boot的发布兼容性政策,Spring Boot 2.3中废弃的代码已在Spring Boot 2.5中删除。在Spring Boot 2.4中废弃的代码仍然存在,并计划在Spring Boot 2.6中删除。

新的和值得注意的

提示:检查配置变化日志,了解配置变化的完整概况。

环境变量的前缀

现在可以为系统环境变量指定一个前缀,这样你就可以在同一个环境中运行多个不同的Spring Boot应用程序。使用SpringApplication.setEnvironmentPrefix(..)来设置绑定属性时要使用的前缀。

例如,下面将添加一个myapp前缀。

SpringApplication application = new SpringApplication(MyApp.class); 
application.setEnvironmentPrefix("myapp"); 
application.run(args);

现在所有的属性都将期望有一个前缀的版本。例如,要改变服务器端口,你可以设置MYAPP_SERVER_PORT

HTTP/2 over TCP (h2c)

所有四个嵌入式Web容器现在都支持HTTP/2 over TCP (h2c),无需任何手动定制。要启用h2c,将server.http2.enabled设置为true,并将server.ssl.enabled设置为false(其默认值)。

通用的数据源初始化

如果你编写初始化DataSource的代码,现在有了一个新的通用机制。这个机制现在也被内部用来为Flyway、Liquibase和基于脚本的初始化设置正确的Bean依赖关系。

大多数开发者不需要直接使用这个新机制。然而,如果你正在开发一个数据访问库的第三方启动器,你可能想提供一个DependsOnDataSourceInitializationDetector。详见更新的参考文档

用R2DBC初始化数据库

增加了对通过R2DBC访问的SQL数据库的基于脚本的初始化支持。默认情况下,classpath上名为schema.sqldata.sql的脚本将被自动应用到数据库中。初始化可以使用spring.sql.init.*配置属性来定制。请参阅参考文档了解更多细节。

Liquibase数据源

如果你定义了一个用于Liquibase的自定义数据源,我们现在使用SimpleDriverDataSource来配置它。我们以前使用一个池化数据源,这对于数据库初始化来说是不必要的,而且效率很低。

分层的WARs

Spring Boot的Maven和Gradle插件现在允许你创建分层WAR,以便与Docker镜像一起使用。分层WAR的工作方式与Spring Boot早期版本中提供的分层JAR支持类似。请查看GradleMaven参考文档,了解更多细节。

Docker镜像构建支持

定制构建包

Maven和Gradle插件现在都支持使用自定义Buildpacks。你可以设置buildpacks属性来指向目录、tar.gz文件、特定的构建器参考或Docker镜像。

更多细节请参见更新后的GradleMaven参考文档。

Bindings

Maven和Gradle插件现在都支持卷的绑定,可以传递给构建包生成器。这允许你绑定本地路径或卷,供构建包使用。

详情请见更新后的 GradleMaven 参考文档。

War 支持

Maven和Gradle插件现在都能将可执行的war文件打包成Docker镜像。如果你想为war文件创建Docker镜像,应使用现有的mvn spring-boot:image./gradlew bootBuildImage命令。

Prometheus的OpenMetrics

/actuator/prometheus执行器端点现在可以提供标准的Prometheus和OpenMetrics响应。返回的响应将取决于HTTP请求中提供的接受头。

Metrics for Spring Data Repositories

Actuator现在将为Spring Data资源库生成Micrometer度量。默认情况下,指标被命名为spring.data.repository.invocations。要了解更多,请看参考文档的相关部分

@Timed Metrics with WebFlux

与Spring MVC的功能一致,@Timed现在可以用来手动启用WebFlux控制器和功能处理程序处理的请求的时间。要使用手动计时,请将management.metrics.web.server.request.autotime.enabled设为false

MongoDB Metrics

当使用Actuator时,Mongo的连接池和客户端发送的命令的度量现在会自动生成。要了解更多关于MongoDB度量的信息,请参见参考文档的相关部分

Actuator Endpoint for Quartz

Actuator中加入了/quartz端点。它提供关于Quartz作业和触发器的详细信息。请参阅Actuator的API文档的相关部分了解更多细节。

向 "actuator/startup "的 "GET "请求

执行器的startup端点现在支持GET请求。与POST请求不同,对端点的GET请求不会耗尽事件缓冲区,事件将继续保留在内存中。

Abstract Routing DataSource Health

执行器的健康端点现在可以显示一个AbstractRoutingDataSource'的目标的健康状况。每个目标数据源都是用它的路由键命名的。和以前一样,要在健康端点中忽略路由数据源,请将management.health.db.ignore-routing-data-sources设置为true’。

Java 16支持

该版本提供了对Java 16的支持并进行了测试。Spring Boot 2.5仍与Java 8兼容。

Gradle 7支持

Spring Boot Gradle插件支持Gradle 7.0.x,并经过了测试。

Jetty 10支持

Spring Boot 2.5现在可以使用Jetty 10作为嵌入式Web服务器。由于Jetty 10需要Java 11,我们默认的Jetty版本将保持为9。

要升级到Jetty 10,请直接声明依赖关系或在pom.xml中使用jetty.version属性。

文档更新

该项目发布的HTML文档有一个更新的外观和感觉,并有一些新功能。你现在可以通过将鼠标悬停在样本上并点击 "复制 "图标,轻松地将代码片段复制到剪贴板。此外,许多样本现在包括完整的导入语句,可以根据需要显示或隐藏。

我们现在还在每个文件的顶部有一个 "黑暗主题 "切换器。

杂项

除了上述变化外,还有很多小的调整和改进,包括。

  • management.endpoints.web.cors.allowed-origin-patterns现在可以用来配置Actuator端点的允许来源模式。 (#24608)
  • HttpSessionIdListener Bean现在可以自动注册到servlet上下文中。(#24879)
  • Couchbase现在默认使用自动配置的`ObjectMapper’。 (#24616)
  • 当elasticsearch-rest-client-sniffer模块在classpath上时,Elasticsearch的 "Sniffer "现在可以自动配置了。(#24174)
  • spring.data.cassandra.controlconnection.timeout现在可以用来配置Cassandra的控制连接的超时。 (#24189)
  • spring.kafka.listener.only-log-record-metadata现在可以用来配置尝试重试时的记录内容。(#24582)
  • 支持Apache Phoenix,自动检测jdbc:phoenix JDBC URLs (#24114)
  • Rabbit的密钥存储和信任存储算法的配置属性 (#24076)
  • 现在可以使用management.endpoints.web.discovery.enabled属性禁用/actuator发现页面。
  • /actuator/configpropsactuator/env端点现在有additional-keys-to-sanitize属性,可以用来对键进行消毒。
  • 如果你想定制JMX执行器端点的名称,你现在可以使用EndpointObjectNameFactory
  • 增加了一个新的DataSourceBuilder.derivedFrom(...)方法,允许你建立一个新的DataSource,它是由现有的DataSource衍生出来的。
  • 当Spring Security在classpath上时,配置属性现在可以被绑定到RSAPublicKeyRSAPrivateKey
  • Spring AMQP 使用的 RabbitMQ ConnectionFactory'现在可以使用 ConnectionFactoryCustomizer’bean 进行定制。
  • 嵌入式数据库的自动配置现在可以使用新的spring.datasource.embedded-data-connection配置属性来控制。它可以被设置为EmbeddedDatabaseConnection的任何值,包括none以完全禁用嵌入式数据库的自动配置。
  • CloudPlatform现在可以自动检测Azure应用服务。
  • server.tomcat.keep-alive-timeout可以用来配置Tomcat在关闭keep-alive连接前等待另一个请求的时间。
  • server.tomcat.max-keep-alive-requests可以用来控制一个keep-alive连接在被关闭之前的最大请求数。
  • spring.webflux.session.cookie.ame-site可用于配置WebFlux的SameSite cookie策略。默认情况下,它是宽松的。
  • Apache HttpClient 5现在可以自动配置为与WebClient一起使用。
  • 一个新的ApplicationEnvironment类已经被引入,它应该能提高一个小的性能。
  • 现在你可以使用spring.netty.leak-detection属性来配置Netty内存。

依赖升级

Spring Boot 2.5转移到几个Spring项目的新版本。

众多的第三方依赖也被更新,其中一些更值得注意的是以下内容。

  • Kotlin 1.5
  • Groovy 3.0
  • Flyway 7.7
  • Liquibase 4.2
  • Jackson 2.12
  • Kafka 2.7
  • Cassandra Driver 4.10
  • Embedded Mongo 3.0
  • Hibernate Validator 6.2
  • Jersey 2.33
  • Mockito 3.7
  • MongoDB 4.2
  • JUnit Jupiter 5.7
  • Elasticsearch 7.12

Spring Boot 2.5中值得注意的弃用情况

在Spring Boot 2.5中进行了以下值得注意的弃用工作

  • org.springframework.boot.actuate.endpoint.http中的ActuatorMediaTypeApiVersion改为org.springframework.boot.actuate.endpoint`中的等价物。
  • 对实现jOOQ的*Provider回调接口或Settings的Bean的支持已被废弃。应该使用DefaultConfigurationCustomizer来代替。
  • org.springframework.boot.autoconfigure.data.jpa中的EntityManagerFactoryDependsOnPostProcessor已被重新定位到org.springframework.boot.autoconfigure.orm.jpa

:lady_beetle: Bug 修复

  • 自动配置的资源处理程序不会被应用到子环境中 #26623
  • Actuator在默认的安全配置和Spring Webflux中不使用CORS配置。#26614
  • 在默认安全配置和Spring MVC下,执行器不使用CORS配置。 #26612
  • 在Spring Boot 2.4中,SpringApplication的额外配置文件和活动配置文件的排序发生了变化。#26610
  • 一个活跃的请求会使Jetty的关机时间推迟30秒 #26608
  • SmartInitializingSingleton Bean在懒惰初始化时无法工作 #26606
  • 当指标记录失败时,MVC和WebFlux指标过滤器对响应产生不利影响 #26596
  • ConfigDataResolvers不能发出信号说它们应该被跳过 #26585
  • 如果actuator和spring security在classpath上,则无法访问远程devtools端点。 #26584
  • 当通配符目录位置不匹配任何文件时,错误信息会引起误解 #26583
  • 有模式的强制性地点失败,有例外 #26582
  • 如果没有文件贡献,带有通配符的非选择位置会失败 #26581
  • 在环境中以编程方式设置的配置文件不再与活动的配置文件属性合并。 #26580
  • 当配置文件被配置为YAML列表时,无法检测到在特定配置文件中使用spring.profiles.include #26575
  • ConfigurationProperties是通过classpath扫描获取的,但并不表明它应该被索引。 #26463
  • 缓冲应用启动失败,出现NoSuchElementException #26458
  • 当使用长文件名的自定义构建包镜像时,构建镜像失败 #26445
  • 当使用传统的处理方法时,额外的配置文件处理得太晚了 #26434
  • 如果直接导入一个特定档案的属性文件,会出现配置数据位置不存在的错误。 #26402
  • StandardConfigDataLoader可以以不正确的顺序导入配置文件的特定文件 #26401
  • productionRuntimeClasspath的可解析性和可消耗性与runtimeClasspath不一致。 #26365
  • JacksonAutoConfiguration通过JacksonClusterEnvironmentBuilderCustomizer提供的ObjectMapper打破了Couchbase驱动。 #26363
  • spring.config.import中的空值导致NullPointerException #26346
  • @DataRedisTest不考虑RedisReactiveAutoConfiguration#26328
  • 当一个bean导致了一个依赖性循环时,失败分析并没有清楚地说明这个循环 #26323
  • SpringBootConfiguration通过classpath扫描被检索到,但并没有表明它应该被索引。 #26318
  • Maven spring-boot:build-image忽略了ZIP布局 #26313
  • 自定义任务后,配置bootBuildImage时,不能拾取targetCompatibility。 #26301
  • 配置项元数据排序不一致 #26277
  • @EnableAutoConfiguration@ImportAutoConfiguration使用不同的类加载器来寻找候选配置 #26237
  • spring.web.resources.cache.use-last-modified=false "在Spring MVC中不起作用。 #26233
  • 恢复对来自RandomValuePropertySource的绑定配置属性的支持#26201
  • 当spring.main.lazy-initialization=true时,@Scheduled方法未被触发。 #26156
  • 当spring-core和spring-boot中的类由不同的ClassLoaders加载时,spring-boot无法找到自己的配置数据位置解析器 #26155
  • ConfigFileApplicationListener#loadPostProcessors不能在子类加载器中加载EnvironmentPostProcessor #26126

:notebook_with_decorative_cover: 文档

  • 参考文档中的信息端点有过时的默认值 #26591
  • 在Spock框架2.0发布后更新文档 #26586
  • 更新Gradle文档以使用模块替换而不是依赖性替换 #26526
  • 改进TestRestTemplate的容错性文档 #26522
  • 记录下堆转储端点需要一个HotSpot JVM #26474
  • 建议在使用Jersey作为过滤器时启用默认的servlet #26452
  • 对Gradle 6.9的文档支持 #26409
  • 修正DockerImageNames#couchbase中对Cassandra的错误引用 #26406
  • PDF文档包括隐藏的代码元素 #26373
  • 将 "使用代码 "从CONTRIBUTING.adoc移到wiki上。#26334
  • 修正NamedContributors Javadoc中的拼写错误 #26325
  • 波兰语README #26320
  • 修复指向Webservices参考文档的链接 #26316
  • 文件属性名称以实现反应性健康指标 #26299
  • 文档中的DataSourceHealthIndicator有错误的键。 #26283
  • 重新排列几个方法 #26262
  • 将文档与主要的默认分支名称对齐 #26257
  • 使系统要求中的Maven版本与实际测试的内容相一致 #26211
  • 说明MeterFilters只适用于Spring管理的MeterRegistry。 #26186
  • 使用Spring Java格式的Eclipse插件的新更新站点 #26172
  • spring.profiles.include在配置元数据中具有过时的sourceType #26165
  • 在 additional-spring-configuration-metadata.json 中包括 spring.profiles.group。 #26164
  • 加强多个实体管理厂的在线文档 #26160
  • SQL init模式定位和数据定位缺少元数据,导致它们被当作资源处理。 #26154
  • 对spring.datasource.schema和spring.datasource.data的替换文件不正确 #26150

:hammer: 依赖升级

  • Upgrade to ActiveMQ 5.16.2 #26528
  • Upgrade to Caffeine 2.9.1 #26529
  • Upgrade to Cassandra Driver 4.11.1 #26530
  • Upgrade to Couchbase Client 3.1.5 #26531
  • Upgrade to Dropwizard Metrics 4.1.21 #26532
  • Upgrade to Ehcache 2.10.9.2 #26533
  • Upgrade to Ehcache3 3.9.3 #26534
  • Upgrade to Elasticsearch 7.12.1 #26535
  • Upgrade to Glassfish JAXB 2.3.4 #26536
  • Upgrade to Groovy 3.0.8 #26537
  • Upgrade to Hazelcast 4.1.3 #26538
  • Upgrade to Hibernate 5.4.31.Final #26539
  • Upgrade to HttpClient5 5.0.4 #26540
  • Upgrade to HttpCore5 5.1.1 #26541
  • Upgrade to Infinispan 12.1.3.Final #26542
  • Upgrade to Janino 3.1.4 #26543
  • Upgrade to JBoss Transaction SPI 7.6.1.Final #26544
  • Upgrade to Jedis 3.6.0 #26545
  • Upgrade to Jetty 9.4.41.v20210516 #26603
  • Upgrade to Jetty Reactive HTTPClient 1.1.8 #26546
  • Upgrade to Johnzon 1.2.11 #26548
  • Upgrade to jOOQ 3.14.9 #26549
  • Upgrade to Json-smart 2.4.7 #26550
  • Upgrade to JUnit Jupiter 5.7.2 #26551
  • Upgrade to Kafka 2.7.1 #26552
  • Upgrade to Kotlin 1.5.0 #26553
  • Upgrade to Kotlin Coroutines 1.5.0 #26568
  • Upgrade to Lettuce 6.1.2.RELEASE #26554
  • Upgrade to Liquibase 4.3.5 #26555
  • Upgrade to MariaDB 2.7.3 #26556
  • Upgrade to Micrometer 1.7.0 #26379
  • Upgrade to MySQL 8.0.25 #26557
  • Upgrade to Neo4j Java Driver 4.2.5 #26558
  • Upgrade to Netty 4.1.65.Final #26604
  • Upgrade to Netty tcNative 2.0.39.Final #26560
  • Upgrade to Pooled JMS 1.2.2 #26561
  • Upgrade to Postgresql 42.2.20 #26562
  • Upgrade to R2DBC Bom Arabba-SR10 #26563
  • Upgrade to Reactor 2020.0.7 #26359
  • Upgrade to SAAJ Impl 1.5.3 #26564
  • Upgrade to Solr 8.8.2 #26565
  • Upgrade to Spring AMQP 2.3.7 #26384
  • Upgrade to Spring Batch 4.3.3 #26392
  • Upgrade to Spring Data 2021.0.1 #26382
  • Upgrade to Spring Framework 5.3.7 #26361
  • Upgrade to Spring HATEOAS 1.3.1 #26380
  • Upgrade to Spring Integration 5.5.0 #26388
  • Upgrade to Spring Kafka 2.7.1 #26386
  • Upgrade to Spring LDAP 2.3.4 #26394
  • Upgrade to Spring Security 5.5.0 #26387
  • Upgrade to Spring Session 2021.0.0 #26389
  • Upgrade to Spring WS 3.1.1 #26390
  • Upgrade to Thymeleaf Layout Dialect 2.5.3 #26566
  • Upgrade to Tomcat 9.0.46 #26567

参考

配置项的改变

过期的配置

Key Replacement Reason
spring.artemis.host spring.artemis.broker-url
spring.artemis.port spring.artemis.broker-url
spring.batch.initialize-schema spring.batch.jdbc.initialize-schema
spring.batch.schema spring.batch.jdbc.schema
spring.batch.table-prefix spring.batch.jdbc.table-prefix
spring.datasource.continue-on-error spring.sql.init.continue-on-error
spring.datasource.data spring.sql.init.data-locations
spring.datasource.data-password spring.sql.init.password
spring.datasource.data-username spring.sql.init.username
spring.datasource.initialization-mode spring.sql.init.enabled
spring.datasource.platform spring.sql.init.platform
spring.datasource.schema spring.sql.init.schema-locations
spring.datasource.schema-password spring.sql.init.password
spring.datasource.schema-username spring.sql.init.username
spring.datasource.separator spring.sql.init.separator
spring.datasource.sql-script-encoding spring.sql.init.encoding
spring.flyway.check-location Locations can no longer be checked accurately due to changes in Flyway’s location support.

2.5.0中的新配置

Key Default value Description
management.endpoint.configprops.additional-keys-to-sanitize Keys that should be sanitized in addition to those already configured.
management.endpoint.env.additional-keys-to-sanitize Keys that should be sanitized in addition to those already configured.
management.endpoint.quartz.cache.time-to-live 0ms Maximum time that a response can be cached.
management.endpoint.quartz.enabled true Whether to enable the quartz endpoint.
management.endpoint.startup.cache.time-to-live 0ms Maximum time that a response can be cached.
management.endpoints.web.cors.allowed-origin-patterns Comma-separated list of origin patterns to allow.
management.endpoints.web.discovery.enabled true Whether the discovery page is enabled.
management.metrics.data.repository.autotime.enabled true
management.metrics.data.repository.autotime.percentiles
management.metrics.data.repository.autotime.percentiles-histogram false
management.metrics.data.repository.metric-name spring.data.repository.invocations Name of the metric for sent requests.
management.metrics.export.influx.api-version API version of InfluxDB to use.
management.metrics.export.influx.bucket Bucket for metrics.
management.metrics.export.influx.org Org to write metrics to.
management.metrics.export.influx.token Authentication token to use with calls to the InfluxDB backend.
management.metrics.mongo.command.enabled true Whether to enable Mongo client command metrics.
management.metrics.mongo.connectionpool.enabled true Whether to enable Mongo connection pool metrics.
server.tomcat.keep-alive-timeout Time to wait for another HTTP request before the connection is closed.
server.tomcat.max-keep-alive-requests 100 Maximum number of HTTP requests that can be pipelined before the connection is closed.
spring.artemis.broker-url tcp://localhost:61616 Artemis broker port.
spring.batch.jdbc.initialize-schema embedded Database schema initialization mode.
spring.batch.jdbc.schema classpath:org/springframework/batch/core/schema-@@platform@@.sql Path to the SQL file to use to initialize the database schema.
spring.batch.jdbc.table-prefix Table prefix for all the batch meta-data tables.
spring.data.cassandra.config Location of the configuration file to use.
spring.data.cassandra.connection.connection-timeout 5s
spring.data.cassandra.controlconnection.timeout 5s Timeout to use for control queries.
spring.datasource.embedded-database-connection Connection details for an embedded database.
spring.datasource.hikari.keepalive-time
spring.datasource.oracleucp.read-only-instance-allowed
spring.elasticsearch.rest.sniffer.delay-after-failure 1m Delay of a sniff execution scheduled after a failure.
spring.elasticsearch.rest.sniffer.interval 5m Interval between consecutive ordinary sniff executions.
spring.flyway.driver-class-name Fully qualified name of the JDBC driver.
spring.flyway.vault-secrets Comma-separated list of paths to secrets that contain Flyway configurations.
spring.flyway.vault-token Vault token required to access secrets.
spring.flyway.vault-url REST API URL of the Vault server.
spring.integration.channel.auto-create true Whether to create input channels if necessary.
spring.integration.channel.max-broadcast-subscribers Default number of subscribers allowed on, for example, a ‘PublishSubscribeChannel’.
spring.integration.channel.max-unicast-subscribers Default number of subscribers allowed on, for example, a ‘DirectChannel’.
spring.integration.endpoint.no-auto-startup A comma-separated list of endpoint bean names patterns that should not be started automatically during application startup.
spring.integration.endpoint.read-only-headers A comma-separated list of message header names that should not be populated into Message instances during a header copying operation.
spring.integration.endpoint.throw-exception-on-late-reply false Whether to throw an exception when a reply is not expected anymore by a gateway.
spring.integration.error.ignore-failures true Whether to ignore failures for one or more of the handlers of the global ‘errorChannel’.
spring.integration.error.require-subscribers true Whether to not silently ignore messages on the global ‘errorChannel’ when they are no subscribers.
spring.jpa.defer-datasource-initialization false
spring.kafka.listener.only-log-record-metadata true Whether to suppress the entire record from being written to the log when retries are being attempted.
spring.netty.leak-detection disabled Level of leak detection for reference-counted buffers.
spring.rabbitmq.ssl.key-store-algorithm SunX509 Key store algorithm.
spring.rabbitmq.ssl.trust-store-algorithm SunX509 Trust store algorithm.
spring.sql.init.continue-on-error false Whether initialization should continue when an error occurs.
spring.sql.init.data-locations Locations of the data (DML) scripts to apply to the database.
spring.sql.init.enabled true Whether basic script-based initialization of an SQL database is enabled.
spring.sql.init.encoding Encoding of the schema and data scripts.
spring.sql.init.password Password of the database to use when applying initialization scripts (if different).
spring.sql.init.platform all Platform to use in the default schema or data script locations, schema-{platform}.sql and data-{platform}.sql.
spring.sql.init.schema-locations Locations of the schema (DDL) scripts to apply to the database.
spring.sql.init.separator ; Statement separator in the schema and data scripts.
spring.sql.init.username Username of the database to use when applying initialization scripts (if different).
spring.webflux.session.cookie.same-site lax SameSite attribute value for session Cookies.

2.5.0中删除的配置

Key Replacement Reason
management.endpoint.prometheus.cache.time-to-live 0ms Maximum time that a response can be cached.
spring.jta.bitronix.connectionfactory.acquire-increment
spring.jta.bitronix.connectionfactory.acquisition-interval
spring.jta.bitronix.connectionfactory.acquisition-timeout
spring.jta.bitronix.connectionfactory.allow-local-transactions
spring.jta.bitronix.connectionfactory.apply-transaction-timeout
spring.jta.bitronix.connectionfactory.automatic-enlisting-enabled
spring.jta.bitronix.connectionfactory.cache-producers-consumers
spring.jta.bitronix.connectionfactory.class-name
spring.jta.bitronix.connectionfactory.defer-connection-release
spring.jta.bitronix.connectionfactory.disabled
spring.jta.bitronix.connectionfactory.driver-properties
spring.jta.bitronix.connectionfactory.failed
spring.jta.bitronix.connectionfactory.ignore-recovery-failures
spring.jta.bitronix.connectionfactory.max-idle-time
spring.jta.bitronix.connectionfactory.max-pool-size
spring.jta.bitronix.connectionfactory.min-pool-size
spring.jta.bitronix.connectionfactory.password
spring.jta.bitronix.connectionfactory.share-transaction-connections
spring.jta.bitronix.connectionfactory.test-connections
spring.jta.bitronix.connectionfactory.two-pc-ordering-position
spring.jta.bitronix.connectionfactory.unique-name
spring.jta.bitronix.connectionfactory.use-tm-join
spring.jta.bitronix.connectionfactory.user
spring.jta.bitronix.datasource.acquire-increment
spring.jta.bitronix.datasource.acquisition-interval
spring.jta.bitronix.datasource.acquisition-timeout
spring.jta.bitronix.datasource.allow-local-transactions
spring.jta.bitronix.datasource.apply-transaction-timeout
spring.jta.bitronix.datasource.automatic-enlisting-enabled
spring.jta.bitronix.datasource.class-name
spring.jta.bitronix.datasource.cursor-holdability
spring.jta.bitronix.datasource.defer-connection-release
spring.jta.bitronix.datasource.disabled
spring.jta.bitronix.datasource.driver-properties
spring.jta.bitronix.datasource.enable-jdbc4-connection-test
spring.jta.bitronix.datasource.failed
spring.jta.bitronix.datasource.ignore-recovery-failures
spring.jta.bitronix.datasource.isolation-level
spring.jta.bitronix.datasource.local-auto-commit
spring.jta.bitronix.datasource.login-timeout
spring.jta.bitronix.datasource.max-idle-time
spring.jta.bitronix.datasource.max-pool-size
spring.jta.bitronix.datasource.min-pool-size
spring.jta.bitronix.datasource.prepared-statement-cache-size
spring.jta.bitronix.datasource.share-transaction-connections
spring.jta.bitronix.datasource.test-query
spring.jta.bitronix.datasource.two-pc-ordering-position
spring.jta.bitronix.datasource.unique-name
spring.jta.bitronix.datasource.use-tm-join