《Spring5官方文档》新功能

原文链接 译者:supriseli

Spring框架的新功能

这一章主要提供Spring框架新的功能和变更。

升级到新版本的框架可以参考。Spring git

内容列表

Spring 5.x框架新的功能

Spring 4.x框架新的功能

Spring 3.x框架新的功能

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

测试方面的改进

  • 完成了对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版本。

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Spring5官方文档》新功能

《Spring5官方文档》新功能(4,3)的更多相关文章

  1. 五个新知识:微软SHA2补丁,亚信专业工具,微软官方文档,使用过期签名(附官方推荐链接),注意使用具有UAC的CMD

    五个新知识:微软SHA2补丁,亚信专业工具,微软官方文档,使用过期签名 不支持SHA2算法的计算机更新补丁:https://technet.microsoft.com/zh-CN/library/se ...

  2. 一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍

    我们在前一篇文章微软新神器-Power BI,一个简单易用,还用得起的BI产品中,我们初步介绍了Power BI的基本知识.由于Power BI是去年开始微软新发布的一个产品,虽然已经可以企业级应用, ...

  3. 一起学微软Power BI系列-官方文档-入门指南(2)获取源数据

    我们在文章: 一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍中,我们介绍了官方入门文档的第一章.今天继续给大家介绍官方文档中,如何获取数据源的相关内容.虽然是英文,但 ...

  4. 一起学微软Power BI系列-官方文档-入门指南(5)探索数据奥秘

    我们几篇系列文章中,我们介绍了官方入门文档与获取数据等基本知识.今天继续给大家另外一个重点,探索数据奥秘.有了数据源,有了模型,下一步就是如何解析数据了.解析数据的过程需要很多综合技能,不仅仅是需要掌 ...

  5. Hui之Hui.js 官方文档

    基础 // 判断值是否是指定数据类型 var result = hui.isTargetType("百签软件", "string"); //=>true ...

  6. Spark官方文档 - 中文翻译

    Spark官方文档 - 中文翻译 Spark版本:1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linki ...

  7. Spring 4 官方文档学习(十四)WebSocket支持

    个人提示:如果需要用到页面推送,高频且要低延迟,WebSocket无疑是最佳选择.否则还是轮询和long polling吧. 做了一个小demo放在码云上,有兴趣的可以看一下,简单易懂:websock ...

  8. Spark SQL 官方文档-中文翻译

    Spark SQL 官方文档-中文翻译 Spark版本:Spark 1.5.2 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 Data ...

  9. Spring 4 官方文档学习(十二)View技术

    关键词:view technology.template.template engine.markup.内容较多,按需查用即可. 介绍 Thymeleaf Groovy Markup Template ...

随机推荐

  1. 如何实现从 Redis 中订阅消息转发到 WebSocket 客户端

    PHP 的redis扩展是阻塞式 IO ,使用订阅/发布模式时,会导致整个进程进入阻塞.因此必须使用Swoole\Redis异步客户端来实现. 实例代码 $server = new swoole_we ...

  2. JQuery Rest客户端库

    JQuery Rest https://github.com/jpillora/jquery.rest/ Summary A jQuery plugin for easy consumption of ...

  3. 【演变】Ajax(AjAj)到WebSocket

    提出问题:A  =>  服务器  =>  B           B端浏览器如何知道服务器有A发来的数据? 解决方案: 第1种:频繁轮询    间隔1秒B向服务器讨要数据,就算数据为空.[ ...

  4. [C++]Linux之网络实时检测功能

    声明:如需引用或者摘抄本博文源码或者其文章的,请在显著处注明,来源于本博文/作者,以示尊重劳动成果,助力开源精神.也欢迎大家一起探讨,交流,以共同进步,乃至成为朋友- 0.0 由于学习操作系统实验课程 ...

  5. -如何存储并定时更新access_token

    来源:https://blog.csdn.net/sct_t/article/details/53002611 我们知道请求access_Token会返回这样一个json,包括access_token ...

  6. ue4 笔记

    关卡场景内的模型在运行中,改变构建脚本后无法立即更新模型骨骼中心点碰到物理边缘 physcX会出问题 bug 纹理启用碰撞会与碰撞顶点冲突 造成效果不正确 IsInGameThread() 渲染时 会 ...

  7. 第28月第21天 记事本Unicode 游戏编程中的人工智能技术

    1. Windows平台,有一个最简单的转化方法,就是使用内置的记事本小程序notepad.exe.打开文件后,点击文件菜单中的另存为命令,会跳出一个对话框,在最底部有一个编码的下拉条. 里面有四个选 ...

  8. git详细介绍

    Git管理我们的代码会经历三个不过程 1. 工作区:没有提交的代码就是存放的工作区 2. 暂存区:通过 git add 文件名 命令提交代码该文件就放在暂存区 3. 历史区:通过 git commit ...

  9. Python 转路由之uplink

    项目描述 1.为客制化的Web API接口建立可重用的对象 2.可以与Requests,asyncio和Twisted 快速开始 Uplink把你的HTTP API接口转化成一个Python的类 fr ...

  10. Maven 通过maven对项目进行拆分、聚合(重点)

    对现在已有maven ssh项目进行拆分,拆分思路:将dao层的代码已经配置文件全体提取出来到一个表现上独立的工程中.同样service.action拆分. ssh-parent: 父工程 ssh-d ...