Spring Framework 6.2 和 Spring Boot 3.4 在 2025 新版本发布前优化容器和监控功能

Broadcom 发布 Spring Framework 6.2 和 Spring Boot 3.4

2024 年 11 月,Broadcom 发布了 Spring Framework 6.2 和 Spring Boot 3.4,这两个版本继续基于 Java 17 和 Jakarta EE 9。Spring Boot 3.4 引入了结构化日志,增加了对 Docker Compose 和 Testcontainers 的各种容器镜像支持,并改进了容器镜像构建和执行器功能。同时,Broadcom 还宣布了将于 2025 年 11 月发布的 Spring Framework 7 和 Spring Boot 4,它们将继续使用 Java 17,但会升级到 Jakarta 11,并采用 JSpecify 进行空安全性检查,同时通过 Project Leyden 加速应用程序启动。

Spring Boot 3.4 的主要特性

  1. 结构化日志:Spring Boot 支持 Elastic Common Schema (ecs)、Logstash (logstash) 和 Graylog Extended Log Format (gelf) 格式。通过 logging.structured.format.filelogging.structured.format.console 可以分别配置文件和控制台的结构化日志格式。
  2. Docker Compose 和 Testcontainers 支持:新增了 Redis Stack、Redis Stack Server、Grafana LGTM 和 Kafka 的容器镜像支持。Docker Compose 可以通过 spring.docker.compose.start.argumentsspring.docker.compose.stop.arguments 接收命令行参数。
  3. 容器镜像构建改进:通过 trustBuilder 提高了从不受信任的构建器构建 OCI 镜像的安全性,imagePlatform 选项可以构建与主机平台不同的操作系统和架构的镜像。
  4. 执行器改进:新增了只读访问模式,/actuator/info 端点显示 SSL 信息,/scheduledtasks 端点显示更多关于调度任务的信息。
  5. 嵌入式服务器:默认情况下,嵌入式服务器会优雅关闭,Undertow 服务器支持虚拟线程。
  6. HTTP 客户端RestClientRestTemplate 支持多种 HTTP 客户端,包括 Apache HTTP Components、Jetty Client、Reactor Netty 等。
  7. 依赖管理:Spring Boot 不再依赖 OkHttp 库,@MockBean@SpyBean 注解被弃用,推荐使用 Spring Framework 的 @MockitoBean@MockitoSpyBean
  8. 依赖升级:Spring Boot 3.4 升级了多个依赖,包括 Spring Security 6.4、Log4j 2.24、Hibernate 6.6、Kafka 3.8 等。

Spring Framework 7 和 Spring Boot 4 的展望

  1. Java 17 基线:Spring Framework 7 和 Spring Boot 4 将继续使用 Java 17 作为基线,同时支持 Java 21 和 Java 25。
  2. JSpecify 空安全性:Spring Framework 7 将采用 JSpecify 注解来替代现有的空安全性注解,提供更好的工具支持和 Kotlin 集成。
  3. Project Leyden 和 GraalVM:Spring 团队将与 Project Leyden 和 GraalVM 进行战略合作,提供更快的应用程序启动速度和 AOT 优化。
  4. Kotlin 2 和 Jakarta EE 11:Kotlin 基线将升级到 Kotlin 2,Jakarta EE 基线升级到 11,带来 Tomcat 11、Hibernate ORM 7 和 Hibernate Validator 9。

开发者访谈

  1. Spring Framework 6 的生命周期:Juergen Hoeller 表示,Spring Framework 的发布周期不再由特性驱动,而是由时间驱动,以适应更频繁的 JDK 发布和第三方依赖的更新。
  2. Java 17 基线的选择:Hoeller 解释,Spring Framework 7 继续使用 Java 17 作为基线是因为技术上的收益有限,而 Jakarta EE 11 和 Kotlin 2 的升级更为重要。
  3. 空安全性改进:Sébastien Deleuze 表示,Spring Framework 7 将迁移到 JSpecify 注解,提供更好的空安全性支持和工具集成。
  4. Project Leyden 和 GraalVM 的战略意义:Deleuze 强调,Project Leyden 和 GraalVM 提供了互补的技术路径,能够显著提升 Spring Boot 应用的启动速度和运行效率。

总结

Spring Framework 6.2 和 Spring Boot 3.4 带来了一系列改进,特别是在结构化日志、容器支持和执行器功能方面。而 Spring Framework 7 和 Spring Boot 4 则将继续推动 Java 生态的现代化,特别是在空安全性、启动速度和跨平台支持方面。

阅读 104
0 条评论