リアクティブアドバイス
バージョン 5.3 以降、ReactiveRequestHandlerAdvice は Mono レスポンスを生成するリクエストメッセージハンドラーに使用できます。このアドバイスには BiFunction<Message<?>, Mono<?>, Publisher<?>> を提供する必要があり、これはインターセプトされた handleRequestMessage() メソッド実装によって生成されたレスポンスに対して Mono.transform() 演算子から呼び出されます。通常、このような Mono のカスタマイズは、timeout()、retry()、同様のサポート演算子を介してネットワーク変動を制御したい場合に必要です。例: WebFlux クライアント経由で HTTP リクエストを送信する場合、以下の設定を使用してレスポンスを 5 秒以上待たずに済みます。
.handle(WebFlux.outboundGateway("https://somehost/"),
e -> e.customizeMonoReply((message, mono) -> mono.timeout(Duration.ofSeconds(5))));message 引数はメッセージハンドラーのリクエストメッセージであり、リクエストスコープの属性を決定するために使用できます。mono 引数は、このメッセージハンドラーの handleRequestMessage() メソッド実装の結果です。この関数からネストされた Mono.transform() を呼び出して、たとえばリアクティブサーキットブレーカーを適用することもできます。