Reactor響應式編程(Mono)

(先寫目標:不要求自己會寫,只要幾個常見的寫法自己能看明白不耽誤查資料就行了,看這個是為了學過濾器里面的那些東西。)

1. 和原來的阻塞式編程的對應關系

返回值,原來返回List<xxxx>的地方變成Flux<xxxx>,原來返回單個對象的地方變成Mono<xxxx>。
Flux就是List的一種變式,Mono表示單個對象。

  1. 由于WebFlux 是響應式的, 所以從DAO 到Service 再到 Controller ,層層之間都必須是響應式的,層與層之前數據交互處理都只能是Mono和Flux,這樣就導致了很多阻塞式的框架無法使用,所以傳統(tǒng)的關系型數據庫框架(JDBC、JPA) 都無法使用(其實已經有了RxJDBC,但是要你去直接操作JDBC,太麻煩了)。
    (只要跟數據庫相關的,基本都沒有辦法搞響應了)

3. Mono的三個階段

(由于Mono和Flux這兩個意思差不多,所以只針對于Mono就可以了)

(1) Mono創(chuàng)建

首先是Mono.just(),直接由這個對象構造出一個Mono。
然后Mono.fromRunnable(),用一個線程來構建一個Mono。

(2) Mono中間處理階段

flatMap(把一個Mono處理一下變成另一個Mono,意思是這后面可以接著加點什么什么,繼續(xù)鏈式處理)
Map(這個Mono直接就變成了普通對象,后面接不上了)
then(這個只是時間上的先后,并不是邏輯上的處理先后,就是then處理前后并不是一個變量,then接收一個變量,然后then前面處理的那個就結束了,后面開始處理then接收的這個變量)

(3) Mono結束

這個基本不用你管,你只要返回一個Mono對象,Spring自動就幫你處理后續(xù)的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容