Spring Web Reactive | 2. WebClient | 2.6. Attributes

リクエストに属性を追加できます。これは、フィルターチェーンに情報を渡し、特定のリクエストに対するフィルターの動作を変えたい場合に便利です。例:

Java

WebClient client = WebClient.builder()
        .filter((request, next) -> {
            Optional<Object> usr = request.attribute("myAttribute");
            // ...
        })
        .build();

client.get().uri("https://example.org/")
        .attribute("myAttribute", "...")
        .retrieve()
        .bodyToMono(Void.class);

    }

Kotlin

val client = WebClient.builder()
        .filter { request, _ ->
            val usr = request.attributes()["myAttribute"];
            // ...
        }
        .build()

    client.get().uri("https://example.org/")
            .attribute("myAttribute", "...")
            .retrieve()
            .awaitBody<Unit>()

WebClient.BuilderレベルでdefaultRequestコールバックを使用し、グローバル設定を行える点に注意してください。これにより、すべてのリクエストへ属性を追加できます。たとえばSpring MVCアプリケーションでは、ThreadLocalデータに基づいてリクエスト属性を設定できます。