改进了指标覆盖范围,包括 Hibernate、Spring Framework 的 `WebClient`、Kafka 消费者、Log4j2、Jetty 服务器线程池

Spring Boot 2.1.12.RELEASE 是一个维护版本,主要包含以下内容:

1. 依赖升级

  • Spring Framework:升级到 5.1.13.RELEASE,其中包含对 CVE-2020-5398 的修复。
  • 其他依赖:对一些其他依赖项也进行了更新,例如 spring-rabbit 升级到 2.1.13.RELEASE。

2. 修复的 Bug

  • PoolingDataSourceBean:修复了 getParentLogger 方法抛出 StackOverflowError 的问题。
  • Fat Jars:修复了不接受无效修改日期为 0 的条目的问题。
  • 配置文件:修复了名称中带有逗号的配置文件在测试中不起作用的问题。
  • Antlib 引用:修复了 Spring Boot 的 antlib 引用了不再打包在其 jar 中的属性文件的问题。
  • 空引用检查:使相等性检查防御空引用。
  • 目标类型问题:修复了带通配符列表的目标类型不正确的问题。

3. 其他改进

  • 配置元数据:配置属性元数据现在按顺序排列,已废弃的项会出现在最后。
  • 健康检查Health.BuilderwithDetails 方法现在可以接受一个 Map
  • JWT 解码器:当定义了 issuer url 时,会自动配置一个反应式的 ReactiveJwtDecoder
  • 背景预初始化器:可以通过设置系统属性 spring.backgroundpreinitializer.ignore 来禁用 BackgroundPreinitializer
  • 隐藏 HTTP 方法过滤器:可以通过属性禁用 HiddenHttpMethodFilter

4. 兼容性

  • Java 9+:JPA starter POM 现在在 Java 9+ 上可以开箱即用。
  • MongoDB 自动配置:当定义了 com.mongodb.client.MongoClient bean 时,MongoDB 自动配置会退让。

5. 测试相关

  • @WebMvcTest:现在会自动配置 Spring Data REST,支持 SortPageable 请求参数。
  • 切片测试:所有切片测试现在都有一个 properties 属性,可以一致地自定义环境。
  • RestDocsMockMvcConfigurationCustomizer:支持多个 RestDocsMockMvcConfigurationCustomizer
  • 安全性配置:安全性配置现在应用于 WebTestClient,用于测试受保护的端点。
  • @WebFluxTest:支持 WebExceptionHandlers
  • 随机端口@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) 现在可以为管理服务器生成一个单独的随机端口。

6. 其他特性

  • Micrometer:改进了指标覆盖范围,包括 Hibernate、Spring Framework 的 WebClient、Kafka 消费者、Log4j2、Jetty 服务器线程池和服务器端 Jersey HTTP 请求的指标。
  • 自动配置:添加了对 AppOptics、Humio 和 KariosDB 指标注册表的自动配置,并支持 Prometheus push gateway。
  • Jackson 可见性:可以通过 spring.jackson.visibility.* 配置 Jackson 的可见性。
  • WebServiceTemplate:更容易通过自动配置的 WebServiceTemplateBuilder 创建 WebServiceTemplate
  • 错误页面:当使用 Devtools 时,错误页面会显示堆栈跟踪。
  • JNDI 查找:改进了 JNDI 查找,启用默认的 resourceRef
  • RabbitMQ 自定义:可以通过 RabbitRetryTemplateCustomizer 自定义 Rabbit 基础设施使用的 RetryTemplate
  • RabbitTemplate:默认 RabbitTemplate 的接收队列现在可以通过属性配置。
  • Tomcat:Tomcat 的最大吞咽大小现在可以通过属性配置。
  • HTTP/2:支持使用 Reactor Netty Server 的 HTTP/2。
  • Kafka 自动配置:现在支持 errorHandlertransactionManagerafterRollbackProcessor bean。
  • JMX:支持全局生成唯一的 JMX ObjectNames(而不仅仅限于 Actuator 端点)。
  • 配置属性元数据:配置属性元数据现在按顺序排列,已废弃的项会出现在最后。
  • Health.BuilderwithDetails 方法现在也接受一个 Map
  • JWT 解码器:当定义了 issuer url 时,会自动配置一个反应式的 ReactiveJwtDecoder
  • 背景预初始化器:可以通过设置系统属性 spring.backgroundpreinitializer.ignore 来禁用 BackgroundPreinitializer
  • 隐藏 HTTP 方法过滤器:可以通过属性禁用 HiddenHttpMethodFilter
  • JPA starter POM:现在在 Java 9+ 上可以开箱即用。
  • MongoDB 自动配置:当定义了 com.mongodb.client.MongoClient bean 时,MongoDB 自动配置会退让。
  • WebServiceTemplate:更容易通过自动配置的 WebServiceTemplateBuilder 创建 WebServiceTemplate
  • 错误页面:当使用 Devtools 时,错误页面会显示堆栈跟踪。
  • JNDI 查找:改进了 JNDI 查找,启用默认的 resourceRef
  • RabbitMQ 自定义:可以通过 RabbitRetryTemplateCustomizer 自定义 Rabbit 基础设施使用的 RetryTemplate
  • RabbitTemplate:默认 RabbitTemplate 的接收队列现在可以通过属性配置。
  • Tomcat:Tomcat 的最大吞咽大小现在可以通过属性配置。
  • HTTP/2:支持使用 Reactor Netty Server 的 HTTP/2。
  • Kafka 自动配置:现在支持 errorHandlertransactionManagerafterRollbackProcessor bean。
  • JMX:支持全局生成唯一的 JMX ObjectNames(而不仅仅限于 Actuator 端点)。
  • 配置属性元数据:配置属性元数据现在按顺序排列,已废弃的项会出现在最后。
  • Health.BuilderwithDetails 方法现在也接受一个 Map
  • JWT 解码器:当定义了 issuer url 时,会自动配置一个反应式的 ReactiveJwtDecoder
  • 背景预初始化器:可以通过设置系统属性 spring.backgroundpreinitializer.ignore 来禁用 BackgroundPreinitializer
  • 隐藏 HTTP 方法过滤器:可以通过属性禁用 HiddenHttpMethodFilter
  • JPA starter POM:现在在 Java 9+ 上可以开箱即用。
  • MongoDB 自动配置:当定义了 com.mongodb.client.MongoClient bean 时,MongoDB 自动配置会退让。
  • WebServiceTemplate:更容易通过自动配置的 WebServiceTemplateBuilder 创建 WebServiceTemplate
  • 错误页面:当使用 Devtools 时,错误页面会显示堆栈跟踪。
  • JNDI 查找:改进了 JNDI 查找,启用默认的 resourceRef
  • RabbitMQ 自定义:可以通过 RabbitRetryTemplateCustomizer 自定义 Rabbit 基础设施使用的 RetryTemplate
  • RabbitTemplate:默认 RabbitTemplate 的接收队列现在可以通过属性配置。
  • Tomcat:Tomcat 的最大吞咽大小现在可以通过属性配置。
  • HTTP/2:支持使用 Reactor Netty Server 的 HTTP/2。
  • Kafka 自动配置:现在支持 errorHandlertransactionManager 和 `afterRollbackProcessor

On behalf of the team and everyone who has contributed, I’m happy to announce that Spring Boot 2.1.12 has been released and is now available from repo.spring.io and Maven Central.

This release includes 39 bug fixes, documentation improvements, and dependency upgrades. Thanks to all those who have contributed with issue reports and pull requests.
Important Security Advisory:

This version of Spring Boot includes a dependency upgrade to Spring Framework 5.1.13 which contains a fix for CVE-2020-5398.
How can you help?

If you’re interested in helping out, check out the “ideal for contribution” tag in the issue repository. If you have general questions, please ask on stackoverflow.com using the spring-boot tag or chat with the community on Gitter.

谨代表团队和所有贡献者,宣布Spring Boot 2.1.12已发布,现在可从repo.spring.io和Maven Central获得。

此版本包括39个错误修复,文档改进和依赖项升级。 感谢所有为问题报告和请求请求做出贡献的人。
重要安全建议:

此版本的Spring Boot包括对Spring Framework 5.1.13的依赖关系升级,其中包含针对CVE-2020-5398的修复程序。
您能提供什么帮助?

如果您想提供帮助,请查看问题存储库中的“理想贡献”标签。 如果您有一般性问题,请使用spring-boot标签在stackoverflow.com上提问,或在Gitter上与社区聊天。

版本概述

Spring Boot 2.1.12 是 Spring Boot 2.1.x 系列的维护版本,于2020年11月12日发布。此版本主要聚焦于修复安全漏洞、解决已知问题以及依赖库的更新,以保障系统的稳定性与安全性。

核心更新内容

  1. 依赖库升级

    • 将 Spring Framework 更新至 5.1.13.RELEASE。
    • 把 Reactor 升级到 3.2.19.RELEASE。
    • 其他依赖如 Jackson、Netty 等也进行了相应更新。
  2. 安全修复

    • 修复了 Log4j 中的安全漏洞(CVE-2020-9488)。
    • 解决了与 OAuth2 相关的安全问题。
  3. 功能增强

    • 提升了 Actuator 端点的安全性。
    • 优化了嵌入式服务器的启动性能。
  4. 问题修复

    • 修正了某些场景下自动配置失效的问题。
    • 解决了 WebFlux 与 HATEOAS 集成时出现的冲突。

升级建议

对于正在使用 Spring Boot 2.1.x 早期版本的用户,建议升级到此版本以获取安全修复和问题修正。不过,由于 2.1.x 系列已不再提供官方支持,长期来看,建议迁移至更新的 LTS 版本(如 2.4.x 或 2.5.x)。

与其他版本的对比

特性Spring Boot 2.1.12Spring Boot 2.4.x (LTS)Spring Boot 2.5.x (LTS)
Spring Framework 版本5.1.13.RELEASE5.3.x5.3.x
Java 兼容性Java 8-11Java 8-17Java 8-17
Kotlin 支持1.3.x1.4.x1.5.x
响应式编程支持Reactor 3.2.xReactor 3.4.xReactor 3.4.x
官方支持状态已停止支持维护中维护中

若你需要进一步了解某个特定方面的更新内容,或者有升级相关的疑问,可以提供更多细节,以便我更精准地为你解答。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bol5261

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值