Spring FrameWork 5.0 新功能 概览

简介: Spring FrameWork 5.0 新功能 概览JDK 8+ 和 Java EE7+ 以上版本整个框架的代码基于java8通过使用泛型等特性提高可读性对java8提高直接的代码支撑运行时兼容JDK9Java EE 7API需要Spring相关的模块支持运行时兼容Java EE8 API取消的包,类和方法包 beans.

Spring FrameWork 5.0 新功能 概览

JDK 8+ 和 Java EE7+ 以上版本

整个框架的代码基于java8
通过使用泛型等特性提高可读性
对java8提高直接的代码支撑

运行时兼容JDK9

Java EE 7API需要Spring相关的模块支持
运行时兼容Java EE8 API

取消的包,类和方法

包 beans.factory.access
包 dbc.support.nativejdbc
从spring-aspects 模块移除了包mock.staicmock,不在提AnnotationDrivenStaticEntityMockingControl支持
许多不建议使用的类和方法在代码库中删除

核心特性

JDK8的增强:

访问Resuouce时提供getFile或和isFile防御式抽象
有效的方法参数访问基于java 8反射增强
在Spring核心接口中增加了声明default方法的支持一贯使用JDK7 Charset和StandardCharsets的增强

兼容JDK9

Spring 5.0框架自带了通用的日志封装
持续实例化via构造函数(修改了异常处理)
Spring 5.0框架自带了通用的日志封装
spring-jcl替代了通用的日志,仍然支持可重写
自动检测log4j 2.x, SLF4J, JUL(java.util.Logging)而不是其他的支持
访问Resuouce时提供getFile或和isFile防御式抽象
基于NIO的readableChannel也提供了这个新特性

核心容器

支持候选组件索引(也可以支持环境变量扫描)
支持@Nullable注解
函数式风格GenericApplicationContext/AnnotationConfigApplicationContext
基本支持bean API注册
在接口层面使用CGLIB动态代理的时候,提供事物,缓存,异步注解检测
XML配置作用域流式

Spring WebMVC

全部的Servlet 3.1 签名支持在Spring-provied Filter实现
在Spring MVC Controller方法里支持Servlet4.0 PushBuilder参数
多个不可变对象的数据绑定(Kotlin/Lombok/@ConstructorPorties)
支持jackson2.9
支持JSON绑定API
支持protobuf3
支持Reactor3.1 : Flux和Mono

SpringWebFlux

新的spring-webflux模块,一个基于reactive的spring-webmvc,完全的异步非阻塞,旨在使用enent-loop执行模型和传统的线程池模型。
Reactive说明在spring-core比如编码和解码

spring-core相关的基础设施

比如Encode 和Decoder可以用来编码和解码数据流;DataBuffer 可以使用java ByteBuffer或者Netty ByteBuf;ReactiveAdapterRegistry可以对相关的库提供传输层支持。
在spring-web包里包含HttpMessageReade和HttpMessageWrite

Kotlin

增加了 Kotlin 支持

测试方面的改进

完成了对JUnit 5’s Juptier编程和拓展模块在Spring TestContext框架
SpringExtension:是JUnit多个可拓展API的一个实现,提供了对现存Spring TestContext Framework的支持,使用@ExtendWith(SpringExtension.class)注解引用。
@SpringJunitConfig:一个复合注解
@ExtendWith(SpringExtension.class) 来源于Junit Jupit
@ContextConfiguration 来源于Srping TestContext框架
@DisabledIf 如果提供的该属性值为true的表达或占位符,信号:注解的测试类或测试方法被禁用
在Spring TestContext框架中支持并行测试
具体细节查看Test 章节 通过SpringRunner在Sring TestContext框架中支持TestNG, Junit5,新的执行之前和之后测试回调。
在testexecutionlistener API和testcontextmanager新beforetestexecution()和aftertestexecution()回调。MockHttpServletRequest新增了getContentAsByteArray()和getContentAsString()方法来访问请求体

如果字符编码被设置为mock请求,在print()和log()方法中可以打印Spring MVC Test的redirectedUrl()和forwardedUrl()方法支持带变量表达式URL模板。
XMLUnit 升级到了2.3版本。

相关文章
|
7月前
|
Java 开发者 Spring
Spring Framework 中的 @Autowired 注解:概念与使用方法
【4月更文挑战第20天】在Spring Framework中,@Autowired 注解是实现依赖注入(Dependency Injection, DI)的一种非常强大的工具。通过使用 @Autowired,开发者可以减少代码中的引用绑定,提高模块间的解耦能力
715 6
|
7月前
|
Java 测试技术 Spring
Spring5新功能
Spring5新功能
|
4月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
4月前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
4月前
|
安全 Java 网络安全
Spring Framework JDK >= 9 远程代码执行(CVE-2022-22965)
Spring Framework JDK >= 9 远程代码执行(CVE-2022-22965)
|
6月前
|
前端开发 Java 调度
Spring Webflux 是 Spring Framework 提供的响应式编程支持
Spring Webflux 是 Spring Framework 提供的响应式编程支持
83 2
|
5月前
|
Cloud Native Java 开发者
深入解析Spring Framework的核心设计原理
深入解析Spring Framework的核心设计原理
|
5月前
|
安全 Java Apache
如何安装与使用Spring Boot 2.2.x、Spring Framework 5.2.x与Apache Shiro 1.7进行高效开发
【7月更文第1天】在现代Java Web开发领域,Spring Boot以其简化配置、快速开发的特点备受青睐。结合Spring Framework的成熟与Apache Shiro的强大权限控制能力,我们可以轻松构建安全且高效的Web应用。本篇文章将指导你如何安装并使用Spring Boot 2.2.x、Spring Framework 5.2.x以及Apache Shiro 1.7来构建一个具备基础权限管理功能的项目。
84 0
|
6月前
|
Java Spring 容器
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
39 0
|
7月前
|
设计模式 Java 数据库连接
Spring Framework 6 中的设计模式
Spring Framework 6 中的设计模式
48 1