《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. Vuforia官方文档-01-Vuforia功能概述

    vuforia官方API自学,只为学习交流,肯定会有错误与肤浅之处,仅供参考 1.图像追踪: 单图:将内容附加到平面图像上,如打印媒体和产品包装(比如扫描识别商品图片,将商品显示在图片上面) 多图:使 ...

  2. Bootstrap4官方文档 | v4核心 -- 组件(一)

    本文翻译于bootstrap官网,主要用于查看文档,方便学习,文章比较长! 阅读目录 入门Bootstrap4 组件 警报 链接颜色 附加内容 解除 JavaScript行为 事件 徽章 药丸徽章 链 ...

  3. 使用 Xilinx Documentation Navigator 查看官方文档

    zynq开发时在block design界面希望简单了解一下GPIO IP使用,双击编辑IP,点击Documentation便可进入 Xilinx Documentation Navigator查看界 ...

  4. chrome扩展官方文档(中文版)—— chrome 扩展的新功能

    传送门:chrome扩展官方文档(中文版) 原文地址:What's new in Chrome extensions Chrome扩展有什么新功能 发布于 2021 年 2 月 25 日,星期四 • ...

  5. 快讯:Oracle 19c 新特性及官方文档抢鲜下载

    随着2月的春风吹拂,Oracle 19c 的第一个 Exadata 版本发布将马上发布出来,等待可测试版本的朋友们马上即可如愿了. 目前官方文档已经可以公开下载到,我为大家整理了一些重要文档,包括概念 ...

  6. 微信小程序如何实现支付功能?看官方文档头疼(使用云函数的方式操作)

    先来个效果图  ^_^ 微信支付功能,个人公众号是没有办法进行开发支付功能的,需要是使用非个人公众号进行注册(如:营业执照等,可以去淘宝购买一个也行 大概500左右) 公众平台的配置可以参考文档,这里 ...

  7. 文件标识符必须为双精度类型的整数值标量_【翻译】VTK官方文档 - vtk文件格式

    本文翻译自vtk官方文档:vtk_file_format 文末有链接 VTK提供了许多源对象和编写器对象,用于读取和写入流行的数据文件格式,此外,VTK也提供了自己的文件格式.创建一种数据文件格式的主 ...

  8. 深入理解Java 8 Lambda表达式(Oracle官方文档版)

    Java 8 问世三年了,9马上也要问世了,所以,嗯,我要开始学8了-- 官方文档:http://docs.oracle.com/javase/tutorial/java/javaOO/lambdae ...

  9. 《Redis官方文档》用Redis构建分布式锁

    <Redis官方文档>用Redis构建分布式锁 用Redis构建分布式锁 在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段. 有很多三方库和文章描述如何用Redis实现 ...

最新文章

  1. 分享Kali Linux 2016.2第43周虚拟机
  2. Modal提示框插件的使用
  3. E20170830-mk
  4. Pytorch《LSTM模型》
  5. 软工第二次结对作业---部门录取方案实现
  6. leetcode 35. 搜索插入位置(二分法搜索失败的情况)
  7. 电子商务网站源码HTML5+CSS3+JavaScript
  8. 关于如何将SQL2008 R2数据库迁移到SQL2008
  9. 如何在虚拟机VMware安装配置功能强大爱快软路由
  10. dw网页制作的基本步骤_网页制作一般使用哪些工具?DW使用方法教学?
  11. 线代第二章 矩阵 +行列式与矩阵的区别
  12. 手风琴效果案例(jQuery)
  13. 作为程序员,外包到底值不值得去呢
  14. 关于在word里的表格里面打公式出现换行问题
  15. FMS Dev Guide学习笔记(验证客户端)
  16. Solr基础理论【倒排索引,模糊查询】
  17. java B2B2C Springcloud电子商务平台源码
  18. freemarker自定义指令及方法
  19. iOS_TUTK_设备在连线时CPU过高的问题解决办法
  20. 论文精读-Resnet

热门文章

  1. maven安装junit_JUnit安装Maven – JUnit 4和JUnit 5
  2. java组合与继承始示例_Java 9功能与示例
  3. Java中的AtomicInteger
  4. scala迭代器_Scala选项和迭代器示例
  5. 产品经理如何搞定程序员
  6. Java基础:介绍访问控制
  7. Java基础篇:构造函数重载
  8. YOLO系列:YOLO v2深度解析 v1 vs v2
  9. 阿里情书 | 爱情是什么模样?想来想去,都是你的模样
  10. Ambari HDP 完整安装手册