上下文
属性提供了一种方便的方法来将信息传递给过滤器链,但它们只影响当前请求。如果您想传递传播到其他嵌套请求(例如,通过flatMap
)或之后执行(例如,通过concatMap
)的信息,则需要使用Reactor Context
。
为了应用于所有操作,需要在反应式链的末尾填充Reactor Context
。例如
-
Java
WebClient client = WebClient.builder()
.filter((request, next) ->
Mono.deferContextual(contextView -> {
String value = contextView.get("foo");
// ...
}))
.build();
client.get().uri("https://example.org/")
.retrieve()
.bodyToMono(String.class)
.flatMap(body -> {
// perform nested request (context propagates automatically)...
})
.contextWrite(context -> context.put("foo", ...));