Spring Framework 6 中的新功能和增强功能

简介: Spring Framework 6 中的新功能和增强功能


Spring 6 是一个重要的版本,距离 Spring 5 发布有四年多了。通过本文的介绍,我们一起来快速了解 Spring 6发行版中的那些令人兴奋的特性。

JDK 17+ 和 Jakarta EE 9+ 基线

  • 现在基于Java 17 源代码级别的整个框架代码库。
  • Servlet、JPA 等从 javax 迁移到 Jakarta 命名空间。
  • 运行时与 Jakarta EE 9 以及 Jakarta EE 10 API 的兼容性。
  • 与最新的Web服务器兼容:Tomcat 10.1、Jetty 11、Undertow 2。
  • 早期兼容虚拟线程(从 JDK 19 开始预览)。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

一般核心修订

  • 升级到 ASM 9.4 和 Kotlin 1.7。
  • 完整的 CGLIB fork,支持捕获 CGLIB 生成的类。
  • 全面的向 AOT(Ahead-Of-Time Processing,提前处理)转型。
  • 对 GraalVM 原生映像的一流支持。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

核心容器

  • 默认情况下,无需 java.beans.Introspector 来确定基本 bean 属性。
  • 在 GenericApplicationContext (refreshForAotProcessing) 中的支持 AOT 处理。
  • 基于预解析构造函数和工厂方法的 Bean 定义转换。
  • 支持 AOP 代理和配置类的早期代理类确定。
  • PathMatchingResourcePatternResolver 使用 NIO 和模块路径 API 进行扫描,分别支持 GraalVM 本机映像和 Java 模块路径中的类路径扫描。
  • DefaultFormattingConversionService 支持基于 ISO 的默认 java.time 类型解析。

数据访问和事务

  • 支持预定 JPA 托管类型(用于包含在 AOT 处理中)。
  • JPA 支持 Hibernate ORM 6.1(保持与 Hibernate ORM 5.6 的兼容性)。
  • 升级到 R2DBC 1.0(包括 R2DBC 事务定义)。
  • 删除 JCA CCI 支持。

Spring 消息传递

  • 基于 @RSocketExchange 服务接口的 RSocket 接口客户端。
  • 基于 Netty 5 Alpha 的 Reactor Netty 2 的早期支持。
  • 支持 Jakarta WebSocket 2.1 及其标准 WebSocket 协议升级机制。

通用 Web 修订

  • 基于 @HttpExchange 服务接口的HTTP接口客户端。
  • 支持 RFC 7807 问题详细信息.
  • 统一 HTTP 状态码处理。
  • 支持 Jackson 2.14。
  • 与 Servlet 6.0 对齐(同时保留与 Servlet 5.0 的运行时兼容性)。

Spring MVC

  • 默认情况下使用的 PathPatternParser(能够选择进入 PathMatcher)。
  • 删除过时的 Tiles 和 FreeMarker JSP 支持。

Spring WebFlux

  • 新的 PartEvent API 用于流式传输多部分表单上传(两者都在客户端和服务器)。
  • 新的 ResponseEntityExceptionHandler 用于自定义 WebFlux 异常并呈现 RFC 7807 错误响应。
  • 非流媒体类型的 Flux 返回值(写入前不再收集到 List)。
  • 基于 Netty 5 Alpha 的 Reactor Netty 2 的早期支持。
  • JDK HttpClient 与 WebClient 集成。

可观察性

  • Micrometer Observation 直接可观察性在 Spring 框架中的部分应用。spring-web 模块现在需要 io.micrometer:micrometer-observation:1.10+ 作为编译依赖项。
  • RestTemplate 和 WebClient 被检测为生成 HTTP 客户端请求观察。
  • Spring MVC 可以使用新的 org.springframework.web.filter.ServerHttpObservationFilter 检测 HTTP 服务器观察。
  • Spring WebFlux 可以使用新的 org.springframework.web.filter.reactive.ServerHttpObservationFilter 检测 HTTP 服务器观察。
  • 对于 Flux 和 Mono 的 Micrometer Context Propagation 集成,从控制器方法返回值。

测试

  • 支持在 JVM 上或 GraalVM 本机映像中测试 AOT 处理的应用程序上下文。
  • 集成 HtmlUnit 2.64 + 请求参数处理。
  • Servlet 模拟(MockHttpServletRequest、MockHttpSession)现在基于 Servlet API 6.0。

参考引用



相关文章
|
1月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
320 2
|
6月前
|
消息中间件 缓存 NoSQL
基于Spring Data Redis与RabbitMQ实现字符串缓存和计数功能(数据同步)
总的来说,借助Spring Data Redis和RabbitMQ,我们可以轻松实现字符串缓存和计数的功能。而关键的部分不过是一些"厨房的套路",一旦你掌握了这些套路,那么你就像厨师一样可以准备出一道道饕餮美食了。通过这种方式促进数据处理效率无疑将大大提高我们的生产力。
229 32
|
6月前
|
安全 Java API
Spring Boot 功能模块全解析:构建现代Java应用的技术图谱
Spring Boot不是一个单一的工具,而是一个由众多功能模块组成的生态系统。这些模块可以根据应用需求灵活组合,构建从简单的REST API到复杂的微服务系统,再到现代的AI驱动应用。
|
5月前
|
监控 安全 Java
Java 开发中基于 Spring Boot 3.2 框架集成 MQTT 5.0 协议实现消息推送与订阅功能的技术方案解析
本文介绍基于Spring Boot 3.2集成MQTT 5.0的消息推送与订阅技术方案,涵盖核心技术栈选型(Spring Boot、Eclipse Paho、HiveMQ)、项目搭建与配置、消息发布与订阅服务实现,以及在智能家居控制系统中的应用实例。同时,详细探讨了安全增强(TLS/SSL)、性能优化(异步处理与背压控制)、测试监控及生产环境部署方案,为构建高可用、高性能的消息通信系统提供全面指导。附资源下载链接:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)。
853 0
|
7月前
|
SQL 前端开发 Java
深入理解 Spring Boot 项目中的分页与排序功能
本文深入讲解了在Spring Boot项目中实现分页与排序功能的完整流程。通过实际案例,从Service层接口设计到Mapper层SQL动态生成,再到Controller层参数传递及前端页面交互,逐一剖析每个环节的核心逻辑与实现细节。重点包括分页计算、排序参数校验、动态SQL处理以及前后端联动,确保数据展示高效且安全。适合希望掌握分页排序实现原理的开发者参考学习。
457 4
|
11月前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
缓存 Java 测试技术
Spring Framework发布5.3.11和5.2.18
Spring Framework发布5.3.11和5.2.18
504 0
|
Java 容器 Spring
Spring Framework 5.1 正式发布
Spring Framework 5.1 正式,支持JDK 11这个LTS版本。
1470 0