Spring Boot 3.2 发行说明(机翻)
英文原文:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.2-Release-Notes
3.2 中的新增功能
3.2 版本的亮点包括:
- 支持虚拟线程
- 对 JVM Checkpoint Restore (Project CRaC) 的初始支持
- SSL 捆绑包重新加载
- 大量可观测性改进
- 对 RestClient 的支持
- 对 JdbcClient 的支持
- 支持 Jetty 12
- 支持 Spring for Apache Pulsar
- 对 Kafka 和 RabbitMQ 的 SSL 捆绑包支持
- 重新设计了嵌套 Jar 处理
- Docker 映像构建改进
从 Spring Boot 3.1 升级
参数名称发现
Spring Boot 3.2 使用的 Spring Framework 版本不再尝试通过解析字节码来推断参数名称。 如果遇到依赖项注入或属性绑定问题,则应仔细检查是否正在使用该选项进行编译。有关详细信息,请参阅“升级到 Spring Framework 6.x”wiki 的这一部分。-parameters
记录的应用程序名称
现在,只要您设置了属性,默认日志输出就会包含您的应用程序名称。 如果您更喜欢以前的格式,可以设置为 .spring.application.name``logging.include-application-name``false
自动配置的用户详细信息服务
现在,当一个或多个 、 和位于类路径上时,自动配置的会回退。 同样,在反应式应用程序中,当一个或多个 和 是类路径之一时,自动配置的现在会回退。InMemoryUserDetailsManager``spring-security-oauth2-client``spring-security-oauth2-resource-server``spring-security-saml2-service-provider``MapReactiveUserDetailsService``spring-security-oauth2-client``spring-security-oauth2-resource-server
如果您正在使用上述依赖项之一,但在应用程序中仍然需要 OR,请在应用程序中定义所需的 bean。InMemoryUserDetailsManager``MapReactiveUserDetailsService
OTLP 跟踪端点
默认值 已被删除。 现在,只有当 Bean 具有值时,才会自动配置。 要恢复旧行为,请将 。management.otlp.tracing.endpoint``OtlpHttpSpanExporter``management.otlp.tracing.endpoint``management.otlp.tracing.endpoint=http://localhost:4318/v1/traces
H2 版本 2.2
Spring Boot 现在默认使用 H2 的 2.2 版。 要继续使用早期版本的 H2 中的数据库,可能需要执行数据迁移。 在升级之前,请使用以下命令导出数据库。 使用新版本的 H2 创建一个空数据库,然后使用命令导入数据。SCRIPT``RUNSCRIPT
Oracle UCP 数据源
默认情况下,Oracle UCP 数据源不再设置为。 如果需要恢复旧行为,可以将 application 属性设置为 。validateConnectionOnBorrow``true``spring.datasource.oracleucp.validate-connection-on-borrow``true
12号码头
Spring Boot 现在支持 Jetty 12。Jetty 12 支持 Servlet 6.0 API,使其与 Tomcat 和 Undertow 保持一致。 以前,如果将 Jetty 与 Spring Boot 3.x 一起使用,则必须将 Servlet API 降级到 5.0。 这不再是必需的。 升级时除去对 Servlet API 版本的任何覆盖。
Kotlin 1.9.0 和 Gradle
Kotlin Gradle 插件 1.9.0 中存在一个错误,该错误会导致其他资源目录丢失。 这会中断本机映像编译,因为 AOT 处理生成的资源不包含在本机映像的类路径中。 要解决此问题,请先应用 Kotlin 的 Gradle 插件。
嵌套 Jar 支持
支持 Spring Boot 的“Uber Jar”加载的底层代码已被重写,因为我们不再需要支持 Java 8。 更新后的代码使用了一种更符合 JDK 预期的新 URL 格式。 以前的 URL 格式已替换为 。 更新后的代码还利用(这是 JDK 9 的一部分)进行资源管理。jar:file:/dir/myjar.jar:BOOT-INF/lib/nested.jar!/com/example/MyClass.class``jar:nested:/dir/myjar.jar/!BOOT-INF/lib/nested.jar!/com/example/MyClass.class``java.lang.ref.Cleaner
我们已尽一切努力确保新代码尽可能透明地替代以前的实现。 我们预计大多数用户甚至不会注意到这一变化。您可能会注意到更改的一个方面是,如果您直接引用其中一个启动器类,因为它们在新的默认启动器中具有新名称:
新增功能 | 经典 |
---|---|
org.springframework.boot.loader.launch.JarLauncher | org.springframework.boot.loader.JarLauncher |
org.springframework.boot.loader.launch.PropertiesLauncher | org.springframework.boot.loader.PropertiesLauncher |
org.springframework.boot.loader.launch.WarLauncher | org.springframework.boot.loader.WarLauncher |
但是,如果您确实发现新实现存在问题,我们提供了一个回退选项,允许您使用旧代码。
对于 Gradle 用户,您可以将 设置为 . 例如:bootJar.loaderImplementation``org.springframework.boot.loader.tools.LoaderImplementation.CLASSIC
bootJar {
loaderImplementation = org.springframework.boot.loader.tools.LoaderImplementation.CLASSIC
}
对于 Maven 用户,您可以将配置上的标记设置为 。 例如:<loaderImplementation>``spring-boot-plugin``CLASSIC
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<loaderImplementation>CLASSIC</loaderImplementation>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
如果您在使用新实现时发现任何意外行为,请提出 GitHub 问题。
Spring Boot 3.0 中的弃用
在此版本中删除了 Spring Boot 3.0 中弃用的类、方法和属性。 请确保在升级之前没有调用已弃用的方法。
最低要求变更
没有。
新的和值得注意的
提示 | 查看配置更改日志,了解配置更改的完整概述。 |
---|---|
Spring for Apache Pulsar 支持
Spring Boot 现在包括对 Spring for Apache Pulsar 项目的自动配置支持和入门 POM。 有关完整的详细信息,请参阅更新的参考文档。
记录相关 ID
现在,每当您使用千分尺跟踪时,Spring Boot 都会自动记录相关 ID。 有关详细信息,请参阅更新的文档。
RestClient 支持
Spring Boot 3.2 包括对 Spring Framework 6.1 中引入的新接口的支持。 此接口提供了一种功能样式,阻止 HTTP API,其设计类似于 。RestClient``WebClient
现有和新的应用程序可能需要考虑将其用作 的替代方法。RestClient``RestTemplate
有关详细信息,请参阅更新的参考文档。
RestTemplate HTTP 客户端
当 Jetty 位于类路径上时,Spring Boot 的 HTTP 客户端自动检测现在将配置为使用 Spring Framework 6.1 中引入的新功能。HttpClient``RestTemplateBuilder``JettyClientHttpRequestFactory
已向 添加了对 的支持。 不像它没有被添加到自动检测中。要使用,您必须选择加入:JdkClientHttpRequestFactory``ClientHttpRequestFactories``JettyClientHttpRequestFactory``JdkClientHttpRequestFactory
@Bean
RestTemplateBuilder restTemplateBuilder(RestTemplateBuilderConfigurer configurer) {
return configurer.configure(new RestTemplateBuilder())
.requestFactory(
(settings) -> ClientHttpRequestFactories.get(JdkClientHttpRequestFactory.class, settings));
}
支持JdbcClient
添加了 JdbcClient
的自动配置,基于 . 如果后者是自动配置的,则会考虑 的属性。NamedParameterJdbcTemplate``spring.jdbc.template.*
支持虚拟线程
Spring Boot 3.2 提供了对虚拟线程的支持。 要使用虚拟线程,您需要在 Java 21 上运行并将属性设置为 。spring.threads.virtual.enabled``true
Servlet Web 服务器
启用虚拟线程后,Tomcat 和 Jetty 将使用虚拟线程进行请求处理。 这意味着处理 Web 请求的应用程序代码(如控制器中的方法)将在虚拟线程上运行。
使用 Spring WebFlux 阻止执行
Spring WebFlux 对块执行的支持会自动配置为在 . 默认情况下和启用虚拟线程时都是。applicationTaskExecutor``AsyncTaskExecutor``applicationTaskExecutor``AsyncTaskExecutor
任务执行
启用虚拟线程后,Bean 将被配置为使用虚拟线程。 任何使用应用程序任务执行器的地方,例如在调用方法时,Spring MVC 的异步请求处理以及 Spring WebFlux 的阻塞执行支持现在都将使用虚拟线程。 和以前一样,任何 Bean 都会应用于自动配置的执行器,并应用该属性。 其他属性将被忽略,因为它们特定于基于池的执行程序。applicationTaskExecutor``SimpleAsyncTaskExecutor``@EnableAsync``@Async``TaskDecorator``spring.task.execution.thread-name-prefix``spring.task.execution.*
A 现在在应用程序上下文中可用,可用于构建 . Bean 可用于自定义构建的 . 如果启用了虚拟线程,则构建器会自动配置为使用它们。SimpleAsyncTaskExecutorBuilder``SimpleAsyncTaskExecutor``SimpleAsyncTaskExecutorCustomizer``SimpleAsyncTaskExecutor
任务调度
启用虚拟线程后,Bean 将被配置为使用虚拟线程。 应用属性和属性。 其他属性将被忽略,因为它们特定于基于池的计划程序。taskScheduler``SimpleAsyncTaskScheduler``spring.task.scheduling.thread-name-prefix``spring.task.scheduling.simple.``spring.task.scheduling.
A 现在在应用程序上下文中可用,可用于构建 . Bean 可用于自定义构建的 . 如果启用了虚拟线程,则构建器会自动配置为使用它们。SimpleAsyncTaskSchedulerBuilder``SimpleAsyncTaskScheduler``SimpleAsyncTaskSchedulerCustomizer``SimpleAsyncTaskScheduler
保持 JVM 处于活动状态
有一个名为 的新属性。当设置为 时,JVM 将保持活动状态,即使所有其他线程都是虚拟(或守护程序)线程也是如此。spring.main.keep-alive``true
特定于技术的集成
启用虚拟线程后,以下特定于技术的集成适用:
- 为 RabbitMQ 侦听器自动配置虚拟线程执行程序。
- 为 Kafka 侦听器自动配置虚拟线程执行程序。
- Spring Data Redis 将使用虚拟线程。
ClusterCommandExecutor
- Spring for Apache Pulsar 将使用 a 作为自动配置的 和 .
VirtualThreadTaskExector``ConcurrentPulsarListenerContainerFactory``DefaultPulsarReaderContainerFactory
对 JVM 检查点还原的初始支持
Spring Boot 3.2 提供了对 JVM 检查点还原(项目 CRaC)的初始支持。有关详细信息,请参阅相关文档。
SSL 捆绑包重新加载
现在,当信任材料发生变化时,可以自动重新加载 SSL 捆绑包。 捆绑包必须通过将其属性设置为 来选择使用此功能。 捆绑包的使用者还必须支持重新加载。reload-on-update``true
支持重新加载的使用者有:
- Netty Web 服务器
- Tomcat Web 服务器
有关重新加载 SSL 捆绑包的更多信息,请参阅参考文档。
可观测性改进
您现在可以使用 Micrometer 的 @Timed
、 和 @Observed
注释。 如果类路径上有 AspectJ,则它们的方面现在会自动配置。@Counted``@NewSpan``@ContinueSpan
Micrometer Racing 的 Bean 会自动注册到 . 在 Spring Boot 3.2.0 之前,未分类的处理程序已在分类处理程序之前注册。 这已被翻转,分类的处理程序现在在未分类的处理程序之前注册。 有关详细信息,请参阅 #34399。ObservationHandler``ObservationConfig
B3 跟踪传播的默认格式已从单无父级更改为单级。
@Scheduled
现在,对方法进行了可观测性检测。
添加了 R2DBC 的可观测性。 若要启用它,请在项目中包含依赖项。io.r2dbc:r2dbc-proxy
性能
有一个名为 的新配置属性,用于控制反应式管道中的上下文传播。 若要在反应式管道中自动传播观察、跟踪 ID 和范围 ID,请将该属性设置为 。spring.reactor.context-propagation``auto
以前缀开头的观测值现在可以通过属性禁用。 例如,要防止 Spring Security 报告观察结果,请设置 .management.observations.enable.spring.security=false
该属性可用于自动将低基数键值应用于所有观测值。 例如,设置会将具有该值的键添加到所有观测值。management.observations.key-values.*``management.observations.key-values.region=us-west``region``us-west
OpenTelemetry
如果找到 OpenTelemetry bean,则会自动在 上注册该 Bean。MeterProvider``BatchSpanProcessor
改进了 OpenTelemetry 的自动配置。如果存在类型或上下文中的 bean,它将自动在 bean 上注册。 此外,OpenTelemetry 现在以 Bean 的形式公开,并且有一个新的配置属性用于配置资源属性。SdkLoggerProvider``SdkMeterProvider``OpenTelemetry``Resource``management.opentelemetry.resource-attributes
如果您使用的是 OpenTelemetry,并且想要对应用的 进行更多控制,您现在可以定义 类型的 bean 。 缺省情况下,将应用所有可用的 Bean。 这同样适用于 OpenTelemetry 的 ,使用 bean 覆盖默认值。 默认情况下,它应用所有可用的 bean。SpanProcessor``SpanProcessors``SpanProcessor``SpanExporter``SpanExporters``SpanExporter
Micrometer 1.12 中更广泛的示例支持
Micrometer 1.12 包含一项功能,用于扩展需要 Prometheus 2.43 或更高版本的示例支持。如果您使用的是低于 2.43.0 的 Prometheus 版本,并且您使用的是千分尺跟踪,请升级到 Prometheus >= 2.43.0,否则指标将不再显示。
测试中的可观测性
在 Spring Boot 3.2 之前,在运行集成测试时,整个 Micrometer Tracing、Brave 和 OpenTelemetry 基础架构已被禁用。 这已被重新设计:仅禁用最小数量的 bean,因此不会向后端发送任何 span(有关将被禁用的 bean 列表,请参阅 #35354)。 如果您有自定义的 Brave 或 OpenTelemetry bean,请确保对它们进行注释,以便在关闭可观测性的情况下运行集成测试时不会创建它们。SpanHandler``SpanExporter``@ConditionalOnEnabledTracing
如果要在启用可观测性的情况下运行集成测试,则可以在测试类上使用 @AutoConfigureObservability
注释。
Docker 镜像构建
默认 CNB 生成器已升级
使用 Maven 和 Gradle 插件构建映像时使用的默认 CNB 构建器已更改。 当 GraalVM 插件应用于构建时,新的默认构建器是 。 否则,新的默认构建器为 . 有关这些构建器的更多信息,请参阅 Paketo 文档。paketobuildpacks:builder-jammy-tiny``paketobuildpacks:builder-jammy-base
以前的默认构建器包括基于 Ubuntu 18.04 的运行映像,新的默认构建器包括基于 Ubuntu 22.04 的运行映像。 这意味着使用新默认值构建的任何映像都将基于 Ubuntu 22.04。
Docker 主机配置
Maven 目标和 Gradle 任务现在使用 Docker CLI 配置文件来确定默认应使用的 Docker 守护程序的主机地址和其他连接详细信息。 有关更多信息,请参阅 Gradle 和 Maven 插件文档。spring-boot:build-image``bootBuildImage
绑定缓存的挂载
现在可以将 CNB 构建器和构建包使用的构建和启动缓存配置为使用绑定挂载而不是命名卷。 BitBucket CI 用户已请求此功能,这些用户不允许从 CI 管道访问卷。 有关更多信息和示例,请参阅 Maven 和 Gradle 文档。
构建工作区配置
现在可以将 CNB 构建器和构建包使用的临时构建工作区配置为使用绑定挂载或自定义命名卷。 有关更多信息和示例,请参阅 Maven 和 Gradle 文档。
安全选项配置
现在可以自定义应用于 CNB 生成器容器的安全选项,以支持现在允许使用默认 Linux 安全选项的 Docker 环境。 有关更多信息,请参阅 Maven 和 Gradle 文档。label=disable
Spring for GraphQL 的可调用支持
Spring for GraphQL 现在自动配置为使用 . 这样就可以对返回 的控制器方法提供开箱即用的支持。applicationTaskExecutor``Callable
其他 OAuth2 令牌验证程序
自动配置的 or 现在将使用任何 bean 进行令牌验证。 它们包含在配置为解码器验证器的验证器中。JwtDecoder``ReactiveJwtDecoder``OAuth2TokenValidator<Jwt>``DelegatingOAuth2TokenValidator
ActiveMQ 的服务连接支持
添加了对 ActiveMQ 的支持,并集成了 Testcontainers 和 Docker Compose。 集成使用图像。ServiceConnection``symptoma/activemq
Docker Compose 对 Neo4j 的支持
Spring Boot 的 Docker Compose 集成现在支持 Neo4j。 您必须在撰写 YAML 中配置环境变量以禁用身份验证(值为 )或为用户设置密码(值为 )。NEO4J_AUTH``none``neo4j``neo4j/your-password
WebSocketServerSpec 配置
可以使用命名空间的属性自定义自动配置所使用的。WebSocketServerSpec``spring.rsocket.server.spec
Neo4j的AuthTokenManager
如果定义了一个 bean,它将用于 Neo4j 的身份验证。 这样的 Bean 优先于属性。 如果定义了 custom,例如,对于与 Testcontainers 或 Docker Compose 托管数据库的服务连接,则忽略 Bean。AuthTokenManager``spring.neo4j.authentication.*``AuthTokenManager``Neo4jConnectionDetails
兔子MQ
SSL 捆绑包支持
现在可以将 RabbitMQ 连接配置为使用具有该属性的 SSL 捆绑包中的 SSL 信任材料。 这提供了使用现有属性作为 Java 密钥库文件提供信任材料的替代方法。spring.rabbitmq.ssl.bundle``spring.rabbitmq.ssl
邮件正文大小有限
默认情况下,最新版本的 RabbitMQ Java 客户端将入站消息正文的最大大小限制为 64MB。 为了自定义此限制,引入了配置属性。spring.rabbitmq.max-inbound-message-body-size
虚拟主机对 RabbitMQ 流的支持
添加了对 RabbitMQ Stream 的虚拟主机支持。如果未显式设置 RabbitMQ Stream,则 RabbitMQ Stream 的虚拟主机会自动使用 RabbitMQ 配置的虚拟主机。 要对 RabbitMQ Stream 使用特定的虚拟主机,请设置 。spring.rabbitmq.stream.virtual-host
卡 夫 卡
SSL 捆绑包支持
现在可以将 Kafka 连接配置为使用具有该属性的 SSL 捆绑包中的 SSL 信任材料。 这提供了使用现有属性作为 Java 密钥库文件提供信任材料的替代方法。spring.kafka.ssl.bundle``spring.kafka.ssl
JMS会议
引入了新的属性,用于配置由自动配置创建的会话:JmsTemplate
spring.jms.template.session.acknowledge-mode
spring.jms.template.session.transacted
同样,也为自动配置的 .spring.jms.listener.session.transacted``JmsMessageListenerContainer
为了与这些新属性保持一致,请注意,现有属性已被弃用,并已作为替代引入。spring.jms.listener.acknowledge-mode``spring.jms.listener.session.acknowledge-mode
Oracle UCP 数据源上的连接验证
删除了 Oracle UCP 数据源上连接验证的默认值。 在默认情况下启用 3.2.0-RC1 连接验证之前,情况不再如此。 如果需要连接验证,请将配置属性设置为 。spring.datasource.oracleucp.validate-connection-on-borrow``true
testAndDevelopmentOnly Gradle 配置
除此之外,Spring Boot 的 Gradle 插件现在还创建了一个配置。 与此新配置不同的是,此新配置中的依赖项包含在测试编译和运行时类路径中。 它主要适用于在开发时使用 Testcontainers 的应用程序。developmentOnly``testAndDevelopmentOnly``developmentOnly
杂项
除了上面列出的更改外,还进行了许多小的调整和改进,包括:
- Jackson 的 和 中声明的功能现在可以分别使用配置属性和启用和禁用。
EnumFeature``JsonNodeFeature``spring.jackson.datatype.enum.``spring.jackson.datatype.jsonnode.
- 其他生成信息属性现在可以使用 .
Provider
- 事务管理器自定义现在适用于任何类型的 ,而不仅仅是 。
TransactionManager``PlatformTransactionManager
- 现在,所有 Bean 都将添加到自动配置的事务管理器中。
TransactionExecutionListener
- 嵌入式 WebServer 启动时记录的端口信息已得到改进并更加一致。
- 新属性设置是否仅对请求使用分段处理。
spring.servlet.multipart.strict-servlet-compliance``multipart/form-data
- 当欢迎页的处理程序收到无效标头时,日志记录已减少,回退到接受所有 MIME 类型。
Accept
- 添加了可用于将 Spring Boot 的默认值应用于 的 。
RestClientBuilderConfigurer``RestClient.Builder
- Bean 不再退缩到用户定义的 Bean 上。如果您有自己的豆子,请将其删除。
restTemplateBuilderConfigurer``restTemplateBuilderConfigurer
- 添加了一个属性来配置 Jetty 服务器的最大连接量。
- 添加了一个新属性,可用于在使用 PEM SSL 捆绑包时验证密钥。
- 现在,以编程方式创建密钥库密码时,可以提供密钥库密码。
PemSslStoreBundle
spring.application.name
现在用于 OpenTelemetry,如果已显式设置 no。service.name``service.name
- 添加了一个新属性,用于在 OTLP 注册表中配置导出指标的基础。
TimeUnit
- 现在,对 OTLP 指标和跟踪的连接详细信息支持。如果将 Testcontainers 或 Docker Compose 与映像一起使用,则会自动创建连接详细信息 bean。
otel/opentelemetry-collector-contrib
- 添加了使用 Wavefront 时对 CSP 身份验证的支持。
- 一个新属性可用于配置 Flyway 对 PostgreSQL 的事务锁的使用。
flyway.postgresql.transactional-lock
- 添加了对 Kafka MessageListenerContainer 属性的支持。
changeConsumerThreadName
- 将 Bean 自动配置为 Kafka MessageListenerContainer 的 .
Function<MessageListenerContainer, String>``threadNameSupplier
- 引入了新的注释,以帮助自动配置虚拟线程问题。
@ConditionalOnThreading
- 添加了对 RabbitMQ 容器属性的支持。
forceStop
- 基于 Zipkin 的发送方现在支持通过配置属性设置的超时。有关详细信息,请参阅 #36264。
WebClient
- 在启用了 AOT 模式的情况下启动应用程序,但尚未在生成中完成 AOT 处理时,错误消息现在更加清晰。
- 使用 GraalVM 时,现在会自动提供 和 的资源提示。
messages.properties``messages_*.properties
- 现在提供了 Kotlin 序列化的依赖项管理。
- Awaitility () 现在是 的一部分。
org.awaitility:awaitility``spring-boot-starter-test
- 自动配置的 Bean 现在在使用 和 的测试中可用。
JdbcClient``@JdbcTest``@DataJpaTest
- 自动配置时,过滤器现在使用其注册 Bean 中的调度程序类型和 init 参数进行注册。
MockMvc
- Testcontainers 现在可以并行初始化。为此,请设置为 。
spring.testcontainers.beans.startup``parallel
- 支持支持千分尺观测值的属性
spring.kafka.template.observation-enabled
依赖项升级
Spring Boot 3.2.0 移动到以下 Spring 项目的新版本:
- 春季 AMQP 3.1
- Spring 授权服务器 1.2
- 春季批次 5.1
- 春季数据 2023.1
- Spring 框架 6.1
- 春季 HATEOAS 2.2
- Spring 集成 6.2
- Spring Kafka 3.1 版本
- Spring LDAP 3.2
- Spring 脉冲星 1.0
- Spring 重试 2.0
- Spring 安全 6.2
- 春季学期 3.2
第三方依赖项也已更新,其中更值得注意的如下:
- 阿尔忒弥斯 2.29
- 勇敢 5.16
- Elasticsearch 客户端 8.10
- 飞行路线 9.22
- GraphQL Java 21.1 的
- 休眠 6.3
- JUnit 5.10 版本
- 杰迪斯 5.0
- 卡夫卡 3.6
- Kotlin 1.9 版本
- 液基碱 4.24
- 日志4j 2.21
- MariaDB 3.2的
- 千分尺 1.12
- 千分尺跟踪 1.2
- 莫基托 5.4
- Mongo Java 驱动程序 4.11
- MySQL的8.1
- Neo4j Java 驱动程序 5.10
- 确定Http 4.12
- 开放遥测 1.28
- 甲骨文 UCP 23.3
- 兔子 AMQP 客户端 5.18.0
- 兔子流客户端 0.11
- 反应堆 2023.0
- 硒 4.14
- 蛇YAML 2.2
Spring Boot 3.2.0 中的弃用
- OkHttp 3 支持已被弃用,取而代之的是 OkHttp 4
- 不推荐使用 和 Maven 目标的属性,取而代之的是 。
directories``spring-boot:run``spring-boot:start``spring-boot:test-run``additionalClasspathElements
- 已弃用,请改用。
management.metrics.tags.``management.observations.key-values.
- 大多数常量在 中定义并已被弃用,以支持枚举值。
LoggingSystemProperties``LogbackLoggingSystemProperties
- 支持启用请求缓冲,并已弃用。虽然 API 仍处于弃用状态,但在 Spring Framework 6.1 中的类似更改之后,配置它将不起作用。
ClientHttpRequestFactorySettings``RestTemplateBuilder
- 不推荐使用 environment 属性注册其他委托,而是以编程方式或在 spring.factories 中注册每个委托。
ApplicationContextInitializer``context.initializer.classes
- 不推荐使用 environment 属性注册其他委托,而是以编程方式或在 spring.factories 中注册每个委托。
ApplicationListener``context.listener.classes
- 由扩展管理的 Flyway 属性已移至专用命名空间。因此,属性已移至 .同样,已移至 .
flyway.oracle*``flyway.oracle.*``spring.flyway.sql-server-kerberos-login-file``spring.flyway.sqlserver.kerberos-login-file
- 对 InfluxDB 的支持已被弃用,取而代之的是新的 InfluxDB Java 客户端及其自己的 Spring Boot 集成。
- 不推荐使用 configuration 属性,取而代之的是新的 .
management.otlp.metrics.export.resource-attributes``management.opentelemetry.resource-attributes
TaskExecutorBuilder
已被弃用,取而代之的是 。ThreadPoolTaskExecutorBuilder
TaskSchedulerBuilder
已被弃用,取而代之的是 。ThreadPoolTaskSchedulerBuilder
- 配置属性替换为 。
spring.jms.listener.concurrency``spring.jms.listener.min-concurrency
- 配置属性替换为 。
spring.jms.listener.acknowledge-mode``spring.jms.listener.session.acknowledge-mode
PlatformTransactionManagerCustomizer
更换.TransactionManagerCustomizer
TransactionManagerCustomizers(Collection<? extends PlatformTransactionManagerCustomizer<?>>)
更换.TransactionManagerCustomizers#of(Collection<? extends TransactionManagerCustomizer<?>>)
DelegatingApplicationContextInitializer
并且不再建议基于属性的初始化。DelegatingApplicationListener
- 中的一些过时的构造函数和 中的访问器。
PemSslStoreBundle``certificate``PemSslStoreDetails
TaskExecutorCustomizer
赞成ThreadPoolTaskExecutorCustomizer
TaskSchedulerBuilder
赞成ThreadPoolTaskSchedulerBuilder
TaskSchedulerCustomizer
赞成ThreadPoolTaskSchedulerCustomizer
- 一些过时的构造函数
NettyWebServer
页脚
© 2023 年 GitHub, Inc.