3年前 (2021-04-04)  相关技术 |   抢沙发  479 
文章评分 0 次,平均分 0.0

Spring5新特性和增强功能

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. 在框架代码中使用函数式编程–lambdastreams

反应式编程支持

反应式编程是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框架。它提供了使用函数式编程风格定义端点的特性。该框架引入了两个基本组件:HandlerFunctionRouterFunction

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

关于

发表评论

表情 格式

暂无评论

登录

忘记密码 ?

切换登录

注册