Spring5 新特性

 

Spring5 新特性

 

Spring 5于2017年底发布.Spring 5为Spring框架带来了大量更新。Spring 4于2013年发布,因此每个人都期待对该框架进行重大改革。我很高兴看到Spring框架中的新功能。

目录[ 隐藏 ]

  • 1春季5功能
    • 1.1 Java基线支持
    • 1.2核心API增强功能
    • 1.3 Spring Web MVC增强功能
    • 1.4 Spring WebFlux
    • 1.5使用Kotlin支持进行功能编程
    • 1.6测试改进
    • 1.7已弃用的支持和已删除的软件包

Spring5 功能

Spring 5的功能大致可分为以下几类:

  • Java Baseline支持
  • 核心API增强功能
  • Spring Web MVC增强功能
  • Spring WebFlux
  • 使用Kotlin支持进行功能编程
  • 测试改进
  • 弃用的支持和已删除的包

Spring5 新特性_第1张图片

Java Baseline支持

  • Spring 5在Java 8上运行,因此spring代码可以利用lambda表达式来提高代码的可读性。
  • Spring 5也支持java 9,因此我们也可以在基于模块的架构上创建我们的应用程序。
  • Spring 5支持Java EE 7,并且与Java EE 8兼容。所以我们可以在我们的应用程序中使用Servlet 4.0,Bean Validation 2.0,JPA 2.2。我们也可以使用它们的旧版本,即Servlet 3.1,Bean Validation 1.1,JPA 2.1
  • Spring 5应用程序首选服务器版本是Tomcat 8.5 +,Jetty 9.4+和WildFly 10+。

我真的很喜欢那个春天5试图赶上不同技术的最新版本。

核心API增强功能

  • 包级别的非null API声明。可以为Nullable参数,字段和返回值显式注释@Nullable注释。
  • 文件操作通过NIO 2流执行,即没有FileInput / Output Stream。对于基于文件的应用程序,这是一个很好的增强和性能提升
  • Spring Framework 5.0附带了自己的Commons Logging桥接器; spring-jcl而不是标准的Commons Logging。
  • 支持通过索引文件“META-INF / spring.components”而不是类路径扫描提供弹簧组件信息。如果您有一个大型弹簧项目和许多弹簧组件,这将大大缩短启动时间。对于开发人员来说也会更好,因为我们可以直接查看指定的文件来找出应用程序入口点,而不是搜索整个类路径文件。

Spring Web MVC增强功能

Spring MVC模块在使用最新的Java EE技术方面进行了重大改革。一些主要的改进是:

 

  • Spring提供的Filter实现中的完整Servlet 3.1签名支持。
  • 支持PushBuilderSpring MVC控制器方法中的Servlet 4.0 参数。
  • 公共服务器上的Servlet 3.0多部分解析的MaxUploadSizeExceededException。
  • 通过MediaTypeFactory委托统一支持常见媒体类型。
  • 使用Kotlin,Lombok,@ ConstructorProperties 与不可变对象进行数据绑定。
  • 支持JSON绑定API作为Jackson和GSON 的替代品。
  • 支持Reactor 3.1 FluxMono以及RxJava 1.3和2.1作为Spring MVC控制器方法的返回值。
  • 支持ResponseStatusException作为程序替代@ResponseStatus

Spring WebFlux

Spring WebFlux是新模块,它是模块的替代品,spring-webmvc并建立在反应式框架之上。此模块用于创建基于事件循环执行模型的完全异步和非阻塞应用程序。

 

 

  • Spring-core中的反应性基础设施,如编码器和解码器,用于编码和解码对象流。
  • @Controller样式,基于注释的编程模型,类似于Spring MVC,但在WebFlux中支持,在反应堆栈上运行。
  • 新的WebClient,具有用于HTTP调用的功能和反应API,与RestTemplate相当,但通过流畅的API,并且在基于WebFlux基础结构的非阻塞和流式方案中也非常出色。

使用Kotlin支持进行功能编程

Spring 5现在也支持Kotlin编程。这是支持函数式编程的重要一步,就像Java也在向函数式编程迈进一样。

  • 支持Null-Safe API
  • 支持带有可选参数和默认值的Kotlin不可变类。
  • 利用Kotlin reified类型参数来避免在各种API(如RestTemplate或WebFlux API)中明确指定用于序列化/反序列化的Class。
  • 支持带有可选参数的Kotlin自动装配构造函数。
  • @ Autowired / @Inject和@RequestParam / @RequestHeader / etc注释的Kotlin零安全支持。

测试改进

  • 支持JUnit 5
  • 支持Spring TestContext Framework中的并行测试执行

弃用的支持和已删除的包

  • 删除的包beans.factory.accessjdbc.support.nativejdbcmock.staticmockspring-aspects模块。
  • 删除了包web.view.tiles2orm.hibernate3/hibernate4丢弃了。这意味着如果您计划使用Spring 5,您还必须使用Hibernate 5。
  • 不再支持旧技术Portlet,Velocity,JasperReports,XMLBeans,JDO,Guava。如果您正在使用其中任何一种,那么要么迁移到其他技术,要么继续使用Spring 4。

这就是对Spring 5功能的快速概述。

参考:Spring GitHub Doc

 

转载来源:https://www.journaldev.com/20714/spring-5

你可能感兴趣的:(Unix&Unix-Like,Java,Spring)