多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Spring 5 的新功能和增强功能 > 原文: [https://howtodoinjava.com/spring5/spring5-features-and-enhancements/](https://howtodoinjava.com/spring5/spring5-features-and-enhancements/) **Spring 5** 是第一个主要版本,距 Spring Framework 4.0 差不多四年了。 在此期间,大多数增强功能都是在 [Spring boot](https://howtodoinjava.com/spring/spring-boot/spring-boot-tutorial-with-hello-world-example/) 项目中完成的。 在本文中,我们将快速介绍 Spring 5.0 发行版中的一些令人兴奋的功能。 ## 基准升级 要构建和运行 Spring 5 应用程序,您将需要最低 [JDK 8](https://howtodoinjava.com/java-8-tutorial/) 和 Java EE7。不再支持以前的 JDK 和 Java EE 版本。 详细来说,Java EE 7 包括: * Servlet 3.1 * [JMS 2.0](https://howtodoinjava.com/spring/spring-boot/spring-boot-jmstemplate-activemq/) * [JPA 2.1](https://howtodoinjava.com/jpa-tutorials-and-examples/) * [JAX-RS 2.0](https://restfulapi.net/create-rest-apis-with-jax-rs-2-0/) * [Bean 验证 1.1](https://howtodoinjava.com/spring/spring-mvc/spring-bean-validation-example-with-jsr-303-annotations/) 与 Java 基准相似,许多其他框架的基准也有所变化。 例如 * Hibernate 5 * Jackson 2.6 * EhCache 2.10 * [JUnit 5](https://howtodoinjava.com/junit-5-tutorial/) * Tiles 3 另外,记下各种服务器的最低支持版本。 * Tomcat 8.5 以上 * Jetty 9.4+ * WildFly 10+ * Netty 4.1+ * Undertow 1.4 以上 ## JDK 9 运行时兼容性 Spring 5 发行版与 [JDK 9](https://howtodoinjava.com/java9/java9-new-features-enhancements/) 发行日期非常吻合。 我们的目标是让 Spring Framework 5.0 在 JDK 9 的 GA 之后立即成为 GA。 Spring 5.0 的候选版本已经在类路径以及 [modulepath](https://howtodoinjava.com/java9/java-9-modules-tutorial/) 上支持 Java 9。 您可以期望在 GA 版本中获得良好的 JDK 9 支持。 ## JDK 8 功能的用法 在 Spring 4.3 之前,JDK 的基线版本为 6。因此 Spring 4 必须支持 Java 6、7 和 8。为了保持向后兼容性,Spring 框架并没有采用 Java 8 本身带来的许多新功能,例如。 [Lambda 编程](https://howtodoinjava.com/java8/complete-lambda-expressions-tutorial-in-java/)。 Spring 5 具有基准版本 8,因此它也使用 Java 8 和 9 的许多新功能。 例如 1. Spring 核心接口中的 Java 8 [默认方法](https://howtodoinjava.com/java8/default-methods-in-java-8/) 2. 基于 Java 8 反射增强的内部代码改进 3. 在框架代码中使用功能编程-lambda 和[流](https://howtodoinjava.com/java8/java-8-tutorial-streams-by-examples/) ## 响应式编程支持 [响应式编程](https://howtodoinjava.com/rxjava/rxjava-2-0-tutorial/)是 Spring Framework 5.0 的最重要功能之一。 响应式编程提供了另一种编程风格,专注于构建对事件做出反应的应用程序。 Spring Framework 5 包含响应式流(用于定义响应式 API 的中性语言尝试)和 [Reactor](https://projectreactor.io/) (由 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`注解。 用于将传入的请求路由到处理函数。 例如 ```java RouterFunction<String> route = route(GET("/hello-world"), request -> Response.ok().body(fromObject("Hello World"))); ``` ## Kotlin 支持 [Kotlin](https://kotlinlang.org/) 是一种静态类型的 JVM 语言,它使代码具有表达力,简短性和可读性。 Spring framework 5.0 对 Kotlin 有很好的支持。 ## 功能移除 随着 Java,Java EE 和其他一些框架的基准版本的增加,Spring Framework 5 删除了对一些框架的支持。 例如 * Portlet * Velocity * JasperReports * XMLBeans * JDO * Guava 学习愉快! 参考:[链接](https://github.com/spring-projects/spring-framework/wiki/What's-New-in-the-Spring-Framework#whats-new-in-spring-framework-5x)