基於Angular和Spring WebFlux做個小Demo


前言

隨着Spring Boot2.0正式發布,Spring WebFlux正式來到了Spring Boot大家族里面。由於Spring WebFlux可以通過更少的線程去實現更高的並發和使用更少的硬件資源去實現擴展,我對此很感興趣。同時Angular6也發布了,也想試試自己Angular的功底,便基於Angular和Spring WebFlux做個一個簡單禮品管理系統的demo。至於angular和spring boot的集成可以參考該博客Angular和Spring Boot一起做個項目

響應式編程

響應式編程是一種面向數據流和變化傳播的編程范式。這意味着可以在編程語言中很方便地表達靜態或動態的數據流,而相關的計算模型會自動將變化的值通過數據流進行傳播。個人通俗的理解為產生數據的行為放在一個數據流內,通過一些運算符將流中的數據進行適當的轉化,最終獲取該數據流中的數據並處理數據。我最早接觸響應式編程是在學習Angular2的時候了解到rxjs,這是ReactiveXz在js上的實現版本,其java版本為rxjava。

學習建議

  1. 由於Spring WebFlux是基於Reactor庫,因此建議先學習一下Reactor,了解響應式編程的概念,能區分Mono和Flux之間的區別。其官網鏈接為http://projectreactor.io
  2. 如果能有余力,可以考慮學一下RxJava2。
  3. 盡可能使用基於事件的編程思維,少寫同步的代碼。

對Spring WebFlux的看法

  1. 實際開發中如果Spring MVC已經能夠滿足需求,還是不要使用Spring WebFlux,除非你僅僅是在Controller層中將Service的返回接口包裝成Mono或者Flux,
  2. 如果使用Spring WebFlux,盡量還是使用基於 Java 注解的方式,尤其是當請求參數比較復雜的時候,基於 Java 8 的 lambda 表達式的函數式編程模型的方式是真的不好用!!!

代碼分享

代碼已經放在github碼雲,希望大家能多多指點。
主頁面


免責聲明!

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



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