春天5发布于2017年底,春天5给春天框架带来了巨大的更新,春天4发布于2013年,所以大家都期待着对春天框架进行重大修订,我很高兴看到春天框架的新功能。
春天五个特点
春五特征可以广泛分为以下类别:
- Java Baseline 支持 *核心 API 改进
- 春季 Web MVC 改进
- [春季 WebFlux](/社区/教程/春季 Webflux 反应式编程)
- Kotlin 支持功能编程
- 测试改进
- 缺少支持和删除包
Java Baseline 支持
- 春季 5 运行在 Java 8 上,所以春季代码可以利用 lambda 表达式来提高代码可读性.
- 春季 5 也支持 java 9,所以我们也可以在模块基础架构上创建我们的应用程序
- 春季 5 支持 Java EE 7,也兼容 Java EE 8,所以我们可以在我们的应用程序中使用 Servlet 4.0, Bean Validation 2.0, JPA 2.2。
我真的很喜欢春天5试图抓住不同技术的最新版本。
核心 API 改进
可撤回的参数、字段和返回值被明确标注为@Nullable
*文件操作是通过NIO 2流进行的,即没有FileInput/Output Stream。这对于基于文件的应用程序来说是一个很好的增强和性能提升
- Spring Framework 5.0 配备了自己的 Commons Logging 桥梁;
spring-jcl
而不是标准的 Commons Logging *支持通过索引文件META-INF/spring.components
提供 Spring 组件信息,而不是通过类路径扫描。
春天 MVC Web 改进
春季MVC模块在使用最新的Java EE技术方面取得了重大改进,其中一些主要的改进是:
支持Servlet 4.0PushBuilder
论点在Spring MVC控制器方法
- MaxUploadSizeExceededException for Servlet 3.0 multipart parsing on common servers *通过MediaTypeFactory代理统一支持常见媒体类型 *使用Kotlin(Lombok)(/community/tutorials/java-project-lombok), @ConstructorProperties 支持 JSON Binding API作为替代杰克逊和GSON(MBR_Exponse_K1_tatues)的数据绑定,支持Reactor 3.1 F_xono**和Mono
春天的WebFlux
Spring WebFlux是新的模块,它是春季webmvc
模块的替代品,建立在反应式框架上。
例如,编码器和解码器用于编码和解码对象流
- @Controller 风格,注释为基础的编程模型,类似于 Spring MVC,但在 WebFlux 中支持,运行在反应堆
- 新 WebClient 具有 HTTP 呼叫的功能和反应式 API,与 RestTemplate 相似,但通过流畅的 API,并在基于 WebFlux 基础设施的非封锁和流媒体场景中表现出色
Kotlin 支持的功能编程
Spring 5 现在也支持 Kotlin 编程,这对支持功能编程是一大步,就像 Java 也在向功能编程迈进一样。
- 支持 Null-Safe API
- 支持可选参数和默认值的 Kotlin 不可变类
- 利用 Kotlin 修复类型参数以避免明确指定类型用于各种 API 中的序列化/deserialization(如 RestTemplate 或 WebFlux API)。
测试改进
- 支持 JUnit 5
- 支持春季测试背景框架中的并行测试
受损的支持和删除的包
已删除beans.factory.access
,jdbc.support.nativejdbc
,mock.staticmock
从spring-aspects
模块
*已删除web.view.tiles2
和orm.hibernate3/hibernate4
的软件包,这意味着如果您计划使用 Spring 5,您还需要使用 Hibernate 5.
- 已删除对旧技术的支持 Portlet, Velocity, JasperReports, XMLBeans, JDO, Guava。如果您正在使用这些软件,那么要么迁移到其他一些技术,要么留在 Spring 4.
这是所有关于春天5功能的快速概述。 参考: 春天GitHub文档