1. 程式人生 > >響應式Spring的道法術器(Spring WebFlux 教程)

響應式Spring的道法術器(Spring WebFlux 教程)

Spring WebFlux 2小時快速入門

Spring 5 之使用Spring WebFlux開發響應式應用。

通過以上內容相信可以對Spring 5.0 推出的響應式開發有了初步的體會。如果希望有更加深入的瞭解,歡迎閱讀下邊的系列文章——

響應式Spring的道法術器

這個系列的文章是為了記錄下自己學習Spring響應式程式設計的所得,也希望能夠幫助到更多的朋友。

原諒我標題黨了,希望能從道、法、術、器四個層面儘量全面地學習和介紹關於Spring響應式程式設計的方方面面。

【道】響應式程式設計的概念、原則、特性與方法

【法】系統介紹響應式程式設計庫的使用與原理

  • ,介紹響應式流規範及響應式開發核心介面,通過自己動手編寫響應式開發庫,瞭解內部實現機制,是理解本章後續內容的基礎,重要。
  • ,在Reactor 3中如何通過generatecreate等方法生成自定義的資料流,是指令式程式設計與響應式程式設計的橋樑。
  • ,從原理角度分析Reactor 3的排程器以及subscribeOnpublishOn的作用原理,最後介紹用於並行執行的ParallelFlux
  • 2.6 測試,介紹使用StepVerifierPublisherProbeTestPublisher三種工具進行自動化測試的方法。
  • 2.7 除錯,介紹基於hook的全域性除錯模式、基於checkpoint()的區域性除錯模式的除錯方法,以及之前用過的log()操作符觀察內部執行情況。
  • ,介紹使用Reactor 3 操作“熱序列”的方法。
  • ,介紹了Reactor內建的幾種Processor實現。
  • ,介紹了基於操作符熔合進行響應式程式設計庫效能優化的思路。

【術】響應式關鍵技術與底層機制
預告:看網上關於Actor/Reactor/Preactor模型、非同步I/O的內容很詳細也很棒,我就不贅述了,初步考慮直接通過模仿reactor-netty專案,從零編寫一套基於Netty的響應式伺服器和客戶端,相信無論是對於我自己還是對於關注本系列文章的朋友來說,都是一次不錯的提升Netty和響應式程式設計的嘗試,也是為下一章做鋪墊。這樣一套基於Netty的響應式伺服器和客戶端工具是Spring WebFlux與Netty之間的適配層,用於將Netty的入站和出站資料進行響應式轉換。

(最近事情有點多,會稍遲些發出來,還是有點難的,光讀原始碼就讀了兩週,囧)

【器】例項瞭解Spring各種響應式元件
系統瞭解Spring中支援響應式的元件,如Spring WebFlux、Spring Data Reactive、Spring Security Reactive,以及使用Spring Boot 2和Spring Cloud構建響應式系統的方法。
(學習中)

2017年9月,Spring Framework 5釋出了其GA版本,這是自2013年12月以來的又一個大版本升級。除了一些人們期待已久的改進,最令人興奮的新特性是它提供了完整的端到端響應式程式設計的支援。這是一種不同於Servlet的全新的程式設計正規化和技術棧,它基於非同步非阻塞的特性,能夠藉助EventLoop以少量執行緒應對高併發的訪問,對微服務架構也頗有助益。不誇張的說,Spring 5使得Java世界擁有了Node.js那樣骨骼驚奇的神器。

2018年3月1號,Spring Boot 2.0如約釋出,也是一個大版本升級。

從這個圖就可以看出對支援Spring 5的Spring Boot 2.0來說,新加入的響應式技術棧是其主打核心特性。具體來說,Spring Boot 2支援的響應式技術棧包括如下:

  • Spring Framework 5提供的非阻塞web框架Spring Webflux;
  • 遵循響應式流規範的兄弟專案Reactor;
  • 支援非同步I/O的Netty、Undertow等框架,以及基於Servlet 3.1+的容器(如Tomcat 8.0.23+和Jetty 9.0.4+);
  • 支援響應式的資料訪問Spring Data Reactive Repositories;
  • 支援響應式的安全訪問控制Spring Security Reactive;
  • 等。

由於水平有限,如果文中有任何問題和不足,煩請您留言告知,不勝感激。