|
对于最新稳定版本,请使用 Spring Framework 7.0.6! |
属性
您可以向请求中添加属性。如果您希望在过滤器链中传递信息,并影响针对特定请求的过滤器行为,这种方式非常方便。 例如:
-
Java
-
Kotlin
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);
}
val client = WebClient.builder()
.filter { request, _ ->
val usr = request.attributes()["myAttribute"];
// ...
}
.build()
client.get().uri("https://example.org/")
.attribute("myAttribute", "...")
.retrieve()
.awaitBody<Unit>()
请注意,你可以在 defaultRequest 级别全局配置一个 WebClient.Builder 回调,该回调允许你向所有请求中插入属性。例如,在 Spring MVC 应用程序中,可以利用此功能根据 ThreadLocal 数据填充请求属性。