天天看點

飛5的Spring Boot2(1)-初識

初識

有的時候,在不經意間,隻是一個偶然的機會,初識,就認準了,一切都是那麼契合, 仿佛冥冥中已經注定好的默契。與Spring Boot的相識就是這樣偶然的一種緣分,轉眼間Spring Boot已經發展到第2個版本。 那麼,為什麼要使用Spring Boot,它的優勢又在哪,更新到2版本後有哪些新特性?我們就來逐一解開面紗。

Spring Boot優點

  • 使用 Spring 項目引導頁面可以在幾秒建構一個項目
  • 友善對外輸出各種形式的服務,如 RESTAPI、WebSocket、Web、Streaming、Tasks
  • 非常簡潔的安全政策內建
  • 支援關系資料庫和非關系資料庫
  • 支援運作期内嵌容器,如Tomcat、Jetty
  • 強大的開發包,支援熱啟動
  • 自動管理依賴
  • 自帶應用監控
  • 支援各種 IDE,如 IntelliJ IDEA 、NetBeans、Eclipse等

Spring 5

Spring5 是一個重要的版本,距離SpringFramework4差不多四年。在此期間,大多數增強都是在 SpringBoot 項目中完成的。

飛5的Spring Boot2(1)-初識

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+
  1. 相容 JDK9 運作時

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

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

  1. 使用 JDK8 特性

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

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

Spring 接口中的預設方法

基于 Java8 反射增強的内部代碼改進

在架構代碼中使用函數式程式設計 - lambda表達式 和 stream流。

  1. 響應式程式設計支援

響應式程式設計是 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 的伺服器。

  1. 函數式web架構

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

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

RouterFunction<String> route =

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

request -> Response.ok().body(fromObject("Hello World")));      
  1. Kotlin支援

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

  1. 移除的特性

随着 Java、JavaEE 和其他一些架構基準版本的增加,SpringFramework5 取消了對幾個架構的支援。例如:

  • Portlet
  • Velocity
  • JasperReports
  • XMLBeans
  • JDO
  • Guava

Spring Boot 2

先從圖上來看變化:

飛5的Spring Boot2(1)-初識

總結