Spring5是第一个主要版本,距离SpringFramework4.0快四年了。在此期间,大多数增强都是在springboot项目中完成的。在本文中,我们将快速介绍Spring5.0发行版中的一些令人兴奋的特性。
Baseline升级
要构建和运行Spring5应用程序,您至少需要JDK8和JavaEE7。以前的JDK和javaee版本不再受支持。具体来说,Java EE 7包括-
- Servlet 3.1版本
- JMS 2.0版
- JPA 2.1版
- JAX-RS 2.0版
- Bean Validation1.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运行时兼容性
Spring5的发布与JDK9的发布日期非常一致。springframework5.0的目标是在jdk9正式发布之后立即正式发布。spring5.0的候选版本已经在classpath和modulepath上支持java9了。
您可以期望在GA版本中获得良好的JDK9支持。
jdk8特性的使用
在Spring4.3之前,JDK的基线版本是6。所以Spring4必须支持Java6、7和8。为了保持向后兼容性,Spring框架没有采用java8自带的许多新特性,例如Lambda
编程。
Spring5有基线版本8,所以它也使用了Java8和Java9的许多新特性。例如
1. 核心Spring接口中的java8默认方法
2. 基于java8反射增强的内部代码改进
3. 在框架代码中使用函数式编程–lambda
和streams
反应式编程支持
反应式编程是springframework5.0最重要的特性之一。反应式编程提供了另一种编程风格,重点是构建对事件作出反应的应用程序。springframework5包含了Reactive
流(与语言无关的定义reactiveapi的尝试)和Reactor
(Spring关键团队提供的reactivestreams的java实现),用于自己的Reactive用途以及许多核心api。
Spring WebFlux在新的spring-web-reactive
模块中,与现有的(流行的)模块相邻位于springwebmvc模块中的springwebmvc。请注意,在Spring5中,传统的SpringMVC一直在Servlet3.1堆栈上运行,包括JavaEE7服务器。
功能性web框架
Spring5在被动特性的基础上,还提供了一个功能强大的web框架。它提供了使用函数式编程风格定义端点的特性。该框架引入了两个基本组件:HandlerFunction
和RouterFunction
。
HandlerFunction
表示处理传入请求并生成响应的函数。RouterFunction
作为@RequestMapping
注释的替代方法。它用于将传入请求路由到处理函数。例如:
RouterFunction<String> route =
route(GET("/hello-world"),
request -> Response.ok().body(fromObject("Hello World")));
Kotlin支持
Kotlin是一种静态类型的JVM语言,它使代码具有表达性、简短性和可读性。springframework5.0对Kotlin有很好的支持。
删除的功能
随着Java、JavaEE和其他一些框架的基线版本的增加,SpringFramework5取消了对一些框架的支持。例如
- Portlet
- Velocity
- JasperReports
- XMLBeans
- JDO
- Guava
除特别注明外,本站所有文章均为老K的Java博客原创,转载请注明出处来自https://javakk.com/1791.html
暂无评论