Spring 5.0新特性

news/2024/10/5 18:41:41 标签: java, spring, 后端

Spring 5.x新特性

1. JDK8的增强

2. 核心容器的改进

3. 新的SpringWebFlux模块

4. 测试方面的改进

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 CharsetStandardCharsets

增强

兼容JDK9

Spring 5.0框架自带了通用的日志封装

持续实例化via构造函数(修改了异常处理)Spring 5.0框架自带了通用的日志封装

spring-jcl替代了通用的日志,仍然支持可重写

自动检测log4j 2.x, SLF4J, JULjava.util.Logging)而不是其他的支持

访问Resuouce时提供getFile或和isFile防御式抽象

基于NIOreadableChannel也提供了这个新特性

核心容器

支持候选组件索引(也可以支持环境变量扫描)

支持@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 FluxMono

SpringWebFlux

新的spring-webflux模块,一个基于reactivespring-webmvc,完全的异步非阻塞,旨在使用

enent-loop执行模型和传统的线程池模型。

Reactive说明在spring-core比如编码和解码

spring-core相关的基础设施,比如Encode Decoder可以用来编码和解码数据流;DataBuffer

以使用java ByteBuffer或者Netty ByteBuf;ReactiveAdapterRegistry可以对相关的库提供传输层支

持。

spring-web包里包含HttpMessageReadeHttpMessageWrite

测试方面的改进

完成了对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 章节 通过SpringRunnerSring TestContext框架中支持TestNG, Junit5,新的执

行之前和之后测试回调。在testexecutionlistener APItestcontextmanagerbeforetestexecution()

aftertestexecution()回调。MockHttpServletRequest新增了getContentAsByteArray()

getContentAsString()方法来访问请求体

如果字符编码被设置为mock请求,在print()log()方法中可以打印Spring MVC Test

redirectedUrl()forwardedUrl()方法支持带变量表达式URL模板。

XMLUnit 升级到了2.3版本。


http://www.niftyadmin.cn/n/341649.html

相关文章

怎么消除文法的左递归性

除文法的左递归性可以采用以下方法: 直接左递归转换为间接左递归消除间接左递归 举例说明: 直接左递归转换为间接左递归 原文法:A → Aα | β 转换后的文法:A → βA A → αA | ε 例如:S → Sabc | ε 转换后…

不同厂家对讲机耳塞耳挂/领夹型988对讲机如何写频改频点/频率能互相通信

988型号都是很多厂家代工出来的,代工出来默认的频点都不一样,有可能买回来的2个不同厂家生产的对讲机,这样它们要能通讯,必须要同频点才能互通,它一般出厂设定16个频道,长按+和-键来切换频道。 需要用到typeC 的写频线,其实是用CH430芯片的usb写频线,可以找厂家要写频线…

又一个2W+的答题抽奖活动,复盘复盘总结总结

又一个2W的答题抽奖活动,复盘复盘总结总结 前段时间太忙了,现在才有时间对一些活动进行复盘总结,这里先对其中一个答题抽奖活动进行复盘总结一下。遇到的一些问题、分析以及其解决方案。 答题抽奖 参与者每答对一道题既可获得相对应的分数&…

计算机图形学-GAMES101-11

显式几何的表示方法 Point Cloud 使用一系列点表示物体的表面。理论上可以表达空间中任何物体。如物体扫描会得到空间中一系列点,但在建模时我们要提取出大量多边形的面。点云对密度要求很高,因此不常使用。 Polygon Mesh 使用三角形表示物体。涉及三…

Java SE 的运算符和控制流语句:深入探索核心编程技巧

Java SE 的运算符和控制流语句:深入探索核心编程技巧 0. 引言1. 运算符1.1 算术运算符1.2 赋值运算符1.3 比较运算符1.4 逻辑运算符1.5 位运算符 2. 控制流程语句3. 结论 0. 引言 Java是一门广泛应用的编程语言,具备强大的功能和灵活的语法。其中&#…

什么是跨链交易?

每个区块链都是一个完整的数字环境,其中所有应用程序都通过底层网络连接。但随着区块链网络的不断增加,以及区块链之间缺乏连接,人们对跨链基础设施的需求越来越高,以提供用户在多个区块链网络之间的互操作性。 没有跨链基础设施&…

使用自定义协议在浏览器打开电脑中的客户端

需求:点击web页面中开始会议按钮时需要拉起电脑中安装的会议客户端,如果电脑没有安装则跳转到客户端的下载页面,有则打开客户端 代码如下: protocolCheck.js function check(uri, failCb, successCb, unsupportedCb) {function failCallback() {failCb && failCb();}…

ctfshow吃瓜杯 web

文章目录 热身ATTup代码审计phar反序列化 shellmeshellme_Revenge 热身 <?php/* # -*- coding: utf-8 -*- # Author: h1xa # Date: 2020-09-16 11:25:09 # Last Modified by: h1xa # Last Modified time: 2020-09-18 16:53:59 # link: https://ctfer.com*/include(&qu…