Spring Reactor Operators
前言
程式寫了一段時間之後,很多時候為了異常錯誤的處理,或是多個邏輯混雜在程式內時,常常日子久了會造成維護上的不便。
自從開始進入 Reactive Programing 之後,由於思考模式比較重視 function flow,所以希望自己的外層程式內,盡量不要再出現 try catch,switch case這類的流程控制區塊。
所以我們接著來看看,以往的 Java 經典做法,如何利用 Spring Reactor Operators 來改頭換面。
Reactor Operators
Reactor map 與 flatMap
Reactor 與 Java Stream Api 的 map 與 flatMap 概念完全不一樣,這裡我們不多花時間,直接來看看這兩個的差異。
我們有一個需求需要將一個 Java Collections 做處理並轉換,我們先看看基本Java經典寫法
那如果我們使用 Reactor Flow ,我們來看看map與flatMap的差別
map 與 flatMap,其實就是 Java 做邏輯處理時常會出現的 call method 後返回一個新物件,當然在 spring reactor 裡,這兩個 operator 也一樣是 non-blocking 的。
作用就是 Java 8 引入的 functional interface 的 Function。(如果不知道我在說什麼可以看這裡 Baeldung )