Spring Boot 2.4.0 正式发布!全新的配置处理机制,拥抱云原生!

2020年11月12日,Spring官方发布了Spring Boot 2.4.0 GA的公告。在这个版本中增加了大量的新特性和改进,下面我们一起看看在这个重要版本中都有哪些值得关注的内容!

更新内容

1. 版本命名的更改,从2.4开始,版本名将去除RELEASE后缀,所以这次的版本不是2.4.0.RELEASE,而是2.4.0

2. 改进了 application.properties 和 application.yml 文件的处理方式。如果您只有一个简单的 application.properties 或 application.yml 文件,那么您的升级应该是无缝的。但是,如果您有更复杂的设置,那么如果您想使用新特性,则可能需要进行一些更改。更细节的内容可参考:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Config-Data-Migration-Guide

3. 新的 spring.config.import 属性可用于导入 Kubernetes 中常用的配置树。

4. 现在可以使用一个新的startup端点来显示有关应用程序启动的信息。这个端点可以帮助您识别比预期启动时间更长的 bean。

5. Docker/Buildpack的支持,可以更方便的构建镜像

6. 完美支持Java 15

7. 相关依赖的升级

  • Spring AMQP 2.3
  • Spring Batch 4.3
  • Spring Data 2020.0
  • Spring Framework 5.3
  • Spring HATEOAS 1.2
  • Spring Integration 5.4
  • Spring Kafka 2.6
  • Spring Retry 1.3
  • Spring Security 5.4
  • Spring Session 2020.0

8. 嵌入式数据库的检测逻辑改进,只有当数据库在内存中时才视为嵌入式数据库。所以,如果当你对 H2、 HSQL 和 Derby 采用文件形式持久化的时候将不会自动初始化

9. Logback配置属性的更改

  • logging.pattern.rolling-file-name → logging.logback.rollingpolicy.file-name-pattern
  • logging.file.clean-history-on-start → logging.logback.rollingpolicy.clean-history-on-start
  • logging.file.max-size → logging.logback.rollingpolicy.max-file-size
  • logging.file.total-size-cap → logging.logback.rollingpolicy.total-size-cap
  • logging.file.max-history → logging.logback.rollingpolicy.max-history

10. 默认情况下,不在 HTTP traces中包含 Cookie 请求头和 set-Cookie 响应头。如果从 Spring Boot 2.3升级的话,需要将 management.trace.http.include 配置设置为 cookies、 errors、 request-headers、 response-headers。

11. Undertow 在转发请求时将保留原始请求 URL。这个版本覆盖了 Undertow 的默认设置,以符合 Servlet 规范。当然,你也可以将属性 server.undertow.preserve-path-on-forward 设置为 true,来恢复 Undertow 的默认行为。

12. 使用ES的用户需要注意,这个版本中不再自动配置低级的 Elasticsearch RestClient,但 RestHighLevelClient 仍然是可以自动配置的。建议用户不应该使用低级的客户端,应该使用更高级的客户端的,所以这样的改动应该不会影响太多用户。

13. 如果你正在使用 Flyway 5,请确保在升级到 Spring Boot 2.4之前升级到 Flyway 6,因为 Flyway 只对一个功能版本进行模式升级。

参考资料

- https://spring.io/blog/2020/11/12/spring-boot-2-4-0-available-now