原文: 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 包括:
- Servlet 3.1
- JMS 2.0
- JPA 2.1
- JAX-RS 2.0
- Bean 验证 1.1
与 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 的许多新功能。 例如
响应式编程支持
响应式编程是 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 框架。 它提供了使用功能性编程风格定义端点的功能。 该框架引入了两个基本组件:HandlerFunction
和RouterFunction
。
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
学习愉快!
参考:链接