詳細介紹Spring 5的那些新特性與增強


Spring5 是一個重要的版本,距離SpringFramework4差不多四年。在此期間,大多數增強都是在 SpringBoot 項目中完成的。在本文中,我們將很快了解到Spring5發行版中的一些令人興奮的特性。

1. 基准升級

要構建和運行 Spring5 應用程序,你至少需要 J2EE7 和 JDK8。以前的 JDK 和 JavaEE 版本不再支持。 JavaEE7 包含:

  • 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+

2. 兼容 JDK9 運行時

Spring5 發行版與 JDK9 發行日期非常接近。目標是讓 Spring Framework5 在 JDK9 的 GA 之后正確運行。 Spring5 版本的候選版本已經在 classpath 和 modulepath 上支持 Java9 了。

GA版本中你可以期待良好的 JDK9 支持。

3. 使用 JDK8 特性

獲取免費Spring 5 新特性視頻詳解可以群:554355695

在 Spring4.3 之前,JDK基准版本是6。所以 Spring4 必須支持 Java6,7 和8,為了保持向后兼容性, Spring 框架沒有適應 Java8 帶來的許多新特性,比如 lambda 表達式。

Spring5 的基准版本為8,因此它使用了 Java8 和9的許多新特性。例如:

  • Spring 接口中的默認方法

  • 基於 Java8 反射增強的內部代碼改進

  • 在框架代碼中使用函數式編程 - lambda表達式 和 stream流

4. 響應式編程支持

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

Spring Web Reactive 在 spring-webmvc 模塊中現有的(而且很流行)Spring Web MVC旁邊的新的 spring-web-reactive 模塊中。 請注意,在 Spring5 中,傳統的 SpringMVC 支持 Servlet3.1 上運行,或者支持 JavaEE7 的服務器。

5. 函數式web框架

除了響應式功能之外,Spring5 還提供了一個函數式Web框架。它提供了使用函數式編程風格來定義端點的特性。 該框架引入了兩個基本組件:HandlerFunction 和 RouterFunction。

HandlerFunction 表示處理接收到的請求並生成響應的函數。 RouterFunction 替代了 @RequestMapping 注解。它用於將接收到的請求路由到處理函數。例如:

RouterFunction<String> route =

route(GET("/hello-world"),

request -> Response.ok().body(fromObject("Hello World")));

6. Kotlin支持

Kotlin 是一種靜態類型的JVM語言,它讓代碼具有表現力,簡潔性和可讀性。 Spring5.0 對 Kotlin 有很好的支持。

7. 移除的特性

隨着 Java、JavaEE 和其他一些框架基准版本的增加,SpringFramework5 取消了對幾個框架的支持。例如:

  • Portlet

  • Velocity

  • JasperReports

  • XMLBeans

  • JDO

  • Guava

  • 獲取免費Spring 5 新特性視頻詳解可以群:554355695

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM