リアクティブライブラリ

spring-webflux は reactor-core に依存しており、非同期ロジックを構成し、Reactive Streams サポートを提供するために内部的に使用します。通常、WebFlux API は Flux または Mono (内部で使用されるため) を返し、入力として Reactive Streams Publisher 実装を寛容に受け入れます。Publisher が提供された場合、不明なセマンティクス (0..N) を持つストリームとしてのみ扱うことができます。ただし、セマンティクスがわかっている場合は、生の Publisher を渡すのではなく、Flux または Mono.from(Publisher) でラップする必要があります。Flux ではなく Mono を使用することは重要です。なぜなら、カーディナリティを表現するのに役立つからです。たとえば、単一の非同期値が期待されるか複数の非同期値が期待されるかなどです。これは、決定を行うために不可欠になる場合があります (たとえば、HTTP メッセージをエンコードまたはデコードする場合)。

アノテーション付きコントローラーの場合、WebFlux は、アプリケーションによって選択されたリアクティブライブラリに透過的に適応します。これは、リアクティブライブラリおよびその他の非同期型のプラグ可能なサポートを提供する ReactiveAdapterRegistry (Javadoc) の助けを借りて行われます。レジストリには、RxJava 3、Kotlin コルーチン、および SmallRye Mutiny のサポートが組み込まれていますが、他のレジストリを登録することもできます。