Spring 5 有哪些新特性

自从 2013 年 12 月 Spring 4.0 发布以来,Spring 又该到了出一个新的大版本的时候了。实际上到现在 Spring 的最新版本已经是 5.0.1,但用起来的人仍然不是很多。一个主要的原因就是它对 Java 版本的最低要求是 8。

下面介绍一下 Spring 5 主要有哪些新的特性,如果你已经在使用 Java 8 和 Spring 4.x,那么应该尽快跟上来。

Spring 5.0 基于 Java 8

这么说的意思是,Spring 的源代码已经是以 Java 8 的语法来重新写过了!这可是相当大的变更,可以说是核心层面的重写。你可以在 Spring 的源码中看到很多:

《Spring 5 有哪些新特性》

这样相比 Spring 4.x 更能充分利用 Java 8 的潜力。

日志记录

Spring 5.0 使用自己的 spring-jcl模块来记录日志,这个模块会自动识别并使用现有的日志框架。

Bean 扫描

当项目非常大的时候,Spring 的扫描过程会导致很长的启动时间。在这个版本开始,你可以使用 META-INF/spring.components 文件来直接指定要注册哪些类。这种方式对于小的项目(比如说少于 200 个 bean)来说可能改善不是很明显,但对大项目来说帮助非常大。

反应式编程模型

Spring 5.0 新增了一个名为 Spring WebFlux 的反应式(Reactive)模型,与现有的 Spring MVC 并存,而它的并发承载能力可以说是高了数倍不止。注意 Spring WebFlux 和 Servlet 是不兼容的。

反应式编程模型属于比较新的东西,随着时间推移,Spring 的其他项目(如 Spring Data、Spring Security、Spring Integration 等)也会陆续加入对反应式编程模型的支持。

但是在数据库操作方面,反应式编程模型还不够成熟,因为 JDBC 规格本身仍然是阻塞式的。

单元测试

因为 JUnit 5 已经适配 Java 8,所以 Spring 5 也对 JUnit 5 做出了相应的适配,对测试进行启用和禁用更加方便,并发测试也更容易。

依赖库

Spring 5.0 的一些依赖关系也做了更新:

  • Jackson 2.6+

  • EhCache 2.10+ / 3.0 GA

  • Hibernate 5.0+

  • JDBC 4.0+

  • XmlUnit 2.x+

  • OkHttp 3.x+

  • Netty 4.1+

参考:

    原文作者:捏造的信仰
    原文地址: https://segmentfault.com/a/1190000011971970
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞