響應式庫
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,但你也可以註冊其他的。