Spring 5新功能和增強功能

Spring 5

是Spring Framework 4。0之後的第一個主要版本。在此期間,大多數增強功能都是在Spring啟動專案中完成的。在本文中,我們將快速介紹Spring 5。0釋出的一些令人興奮的功能。

Spring 5新功能和增強功能

目錄

升級

JDK 9執行時相容性

JDK 8功能的使用

反應式程式設計支援

功能性Web框架

Kotlin支援刪除的功能

升級

要構建和執行Spring 5應用程式,您將需要最少的JDK 8和Java EE 7。以前的JDK和Java EE版本不再受支援。詳細說明,Java EE 7包括 -

Servlet 3。1

JMS 2。0

JPA 2。1

JAX-RS 2。0

Bean Validation 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釋出候選版已經在classpath和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介面中的Java 8 預設方法

基於Java 8反射增強功能的內部程式碼改進

在框架程式碼中使用函數語言程式設計 - lambdas和stream

反應式程式設計支援

反應式程式設計是Spring Framework 5。0最重要的特性之一。反應式程式設計提供了另一種程式設計風格,專注於構建對事件做出反應的應用程式。Spring Framework 5包含Reactive Streams(定義反應API的語言中立嘗試)和Reactor(Spring Pivotal團隊提供的Reactive Streams的Java實現),用於其自身的反應性使用以及許多核心API。

Spring Web Reactive位於spring-web-reactive模組中現有(且流行!)Spring Web MVC旁邊的新spring-webmvc模組中。請注意,在Spring 5中,傳統的Spring MVC繼續在任何Servlet 3。1堆疊上執行,包括Java EE 7伺服器。

功能性Web框架

Spring 5基於反應功能構建,還提供了功能性Web框架。它提供了使用函數語言程式設計風格定義端點的功能。該框架介紹了兩個基本元件:HandlerFunction和RouterFunction。

該HandlerFunction代表處理傳入的請求並生成響應的功能。RouterFunction作為@RequestMapping註釋的替代。它用於將傳入的請求路由到處理函式。例如

RouterFunction route = route(GET(“/hello-world”), request -> Response。ok()。body(fromObject(“Hello World”)));

Kotlin的支援

Kotlin是一種靜態型別的JVM語言,它使程式碼具有表現力,簡短和可讀性。Spring框架5。0對Kotlin有很好的支援。

刪除的功能

隨著Java,Java EE和一些其他框架的基線版本的增加,Spring Framework 5刪除了對一些框架的支援。例如

Portlet

Velocity

JasperReports

XMLBeans

JDO

Guava