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データに基づいてリクエスト属性を設定できます。