Spring 5 的新功能和增强功能

Spring 5 的新功能和增强功能

原文: https://howtodoinjava.com/spring5/spring5-features-and-enhancements/

Spring 5 是第一个主要版本,距 Spring Framework 4.0 差不多四年了。 在此期间,大多数增强功能都是在 Spring boot 项目中完成的。 在本文中,我们将快速介绍 Spring 5.0 发行版中的一些令人兴奋的功能。

基准升级

要构建和运行 Spring 5 应用程序,您将需要最低 JDK 8 和 Java EE7。不再支持以前的 JDK 和 Java EE 版本。 详细来说,Java EE 7 包括:

与 Java 基准相似,许多其他框架的基准也有所变化。 例如

  • Hibernate 5
  • Jackson 2.6
  • EhCache 2.10
  • JUnit 5
  • Tiles 3

另外,记下各种服务器的最低支持版本。

  • Tomcat 8.5 以上
  • Jetty 9.4+
  • WildFly 10+
  • Netty 4.1+
  • Undertow 1.4 以上

JDK 9 运行时兼容性

Spring 5 发行版与 JDK 9 发行日期非常吻合。 我们的目标是让 Spring Framework 5.0 在 JDK 9 的 GA 之后立即成为 GA。 Spring 5.0 的候选版本已经在类路径以及 modulepath 上支持 Java 9。

您可以期望在 GA 版本中获得良好的 JDK 9 支持。

JDK 8 功能的用法

在 Spring 4.3 之前,JDK 的基线版本为 6。因此 Spring 4 必须支持 Java 6、7 和 8。为了保持向后兼容性,Spring 框架并没有采用 Java 8 本身带来的许多新功能,例如。 Lambda 编程

Spring 5 具有基准版本 8,因此它也使用 Java 8 和 9 的许多新功能。 例如

  1. Spring 核心接口中的 Java 8 默认方法
  2. 基于 Java 8 反射增强的内部代码改进
  3. 在框架代码中使用功能编程-lambda 和

响应式编程支持

响应式编程是 Spring Framework 5.0 的最重要功能之一。 响应式编程提供了另一种编程风格,专注于构建对事件做出反应的应用程序。 Spring Framework 5 包含响应式流(用于定义响应式 API 的中性语言尝试)和 Reactor (由 Spring Pivotal 团队提供的响应式流的 Java 实现),用于其自身的响应式使用以及其许多核心 API。

Spring Web Reactive 位于新的spring-web-reactive模块中,位于spring-webmvc模块中现有(流行的!)Spring Web MVC 的旁边。 请注意,在 Spring 5 中,传统的 Spring MVC 可以在任何 Servlet 3.1 堆栈上运行,包括 Java EE 7 服务器。

功能性网络框架

在响应功能的基础上,Spring 5 还提供了一个功能性的 Web 框架。 它提供了使用功能性编程风格定义端点的功能。 该框架引入了两个基本组件:HandlerFunctionRouterFunction

HandlerFunction代表处理传入请求并生成响应的功能。 RouterFunction可以替代@RequestMapping注解。 用于将传入的请求路由到处理函数。 例如

RouterFunction<String> route =
    route(GET("/hello-world"),
    request -> Response.ok().body(fromObject("Hello World")));

Kotlin 支持

Kotlin 是一种静态类型的 JVM 语言,它使代码具有表达力,简短性和可读性。 Spring framework 5.0 对 Kotlin 有很好的支持。

功能移除

随着 Java,Java EE 和其他一些框架的基准版本的增加,Spring Framework 5 删除了对一些框架的支持。 例如

  • Portlet
  • Velocity
  • JasperReports
  • XMLBeans
  • JDO
  • Guava

学习愉快!

参考:链接