Spring Web Reactive | 2. WebClient | 2.7. Context
속성(Attributes)은 정보를 필터 체인에 전달하는 편리한 방법을 제공하지만, 현재 요청에만 영향을 준다. 중첩된 추가 요청에 전파하는 정보를 전달하려면, 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", ...));
최종 수정 : 2021-04-12