Spring 5
是Spring Framework 4。0之後的第一個主要版本。在此期間,大多數增強功能都是在Spring啟動專案中完成的。在本文中,我們將快速介紹Spring 5。0釋出的一些令人興奮的功能。
目錄
升級
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
Kotlin的支援
Kotlin是一種靜態型別的JVM語言,它使程式碼具有表現力,簡短和可讀性。Spring框架5。0對Kotlin有很好的支援。
刪除的功能
隨著Java,Java EE和一些其他框架的基線版本的增加,Spring Framework 5刪除了對一些框架的支援。例如
Portlet
Velocity
JasperReports
XMLBeans
JDO
Guava