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