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

简介: 在2022年11月16日,Juergen Hoeller发布了消息,称 Spring Framework 6将正式发布。Spring 6 是一个重要的版本,距离 Spring 5 发布有四年多了。通过本文的介绍,我们一起来快速了解 Spring 6发行版中的那些令人兴奋的特性。

在2022年11月16日,Juergen Hoeller发布了消息,称 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.3.
  • 早期兼容虚拟线程(从JDK 19开始预览)。

一般核心修订

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

核心容器

  • 默认情况下,无需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月前
|
消息中间件 缓存 Java
手写模拟Spring Boot启动过程功能
【11月更文挑战第19天】Spring Boot自推出以来,因其简化了Spring应用的初始搭建和开发过程,迅速成为Java企业级应用开发的首选框架之一。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,帮助读者深入理解其工作机制。
41 3
|
16天前
|
XML 安全 Java
|
1月前
|
Java 开发者 微服务
手写模拟Spring Boot自动配置功能
【11月更文挑战第19天】随着微服务架构的兴起,Spring Boot作为一种快速开发框架,因其简化了Spring应用的初始搭建和开发过程,受到了广大开发者的青睐。自动配置作为Spring Boot的核心特性之一,大大减少了手动配置的工作量,提高了开发效率。
50 0
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
111 62
|
16天前
|
XML Java 数据格式
Spring Core核心类库的功能与应用实践分析
【12月更文挑战第1天】大家好,今天我们来聊聊Spring Core这个强大的核心类库。Spring Core作为Spring框架的基础,提供了控制反转(IOC)和依赖注入(DI)等核心功能,以及企业级功能,如JNDI和定时任务等。通过本文,我们将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring Core,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
40 14
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
78 2
|
2月前
|
存储 Java 数据管理
强大!用 @Audited 注解增强 Spring Boot 应用,打造健壮的数据审计功能
本文深入介绍了如何在Spring Boot应用中使用`@Audited`注解和`spring-data-envers`实现数据审计功能,涵盖从添加依赖、配置实体类到查询审计数据的具体步骤,助力开发人员构建更加透明、合规的应用系统。
|
Java 数据库 数据安全/隐私保护
《Spring 3.0就这么简单》——1.2 实例功能概述
Spring拥有持久层、业务层和展现层的“原生技术”,分别是Spring JDBC、声明式事务和Spring MVC。为了充分展现Spring本身的魅力,在本章中仅使用Spring的这些原生技术,在以后的章节中,我们将学习其他的持久层和展现层技术,只要用户愿意,就可以平滑地将其过渡到其他技术实现中。
2098 0
|
2月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
219 2
|
1天前
|
NoSQL Java Redis
Spring Boot 自动配置机制:从原理到自定义
Spring Boot 的自动配置机制通过 `spring.factories` 文件和 `@EnableAutoConfiguration` 注解,根据类路径中的依赖和条件注解自动配置所需的 Bean,大大简化了开发过程。本文深入探讨了自动配置的原理、条件化配置、自定义自动配置以及实际应用案例,帮助开发者更好地理解和利用这一强大特性。
29 14