反應式函式庫
spring-webflux
依賴 reactor-core
,並在內部使用它來組合非同步邏輯和提供 Reactive Streams 支援。一般來說,WebFlux API 會傳回 Flux
或 Mono
(因為這些在內部使用),並寬鬆地接受任何 Reactive Streams Publisher
實作作為輸入。當提供 Publisher
時,它只能被視為具有未知語意 (0..N) 的串流。但是,如果語意已知,您應該使用 Flux
或 Mono.from(Publisher)
包裝它,而不是傳遞原始 Publisher
。Flux
與 Mono
的使用很重要,因為它有助於表達基數 - 例如,預期單個或多個非同步值,這對於做出決策(例如,在編碼或解碼 HTTP 訊息時)至關重要。
對於註解控制器,WebFlux 會透明地適應應用程式選擇的反應式函式庫。這是藉助 ReactiveAdapterRegistry
來完成的,它為反應式函式庫和其他非同步類型提供可插拔的支援。該登錄檔內建了對 RxJava 3、Kotlin 協同程式和 SmallRye Mutiny 的支援,但您也可以註冊其他函式庫。