2.7. Context

편집일시: 2021-04-09 15:27 조회수: 225 댓글수: 0
[속성(Attributes)](https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html#webflux-client-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", ...)); ```

이전 글 : 2.6. Attributes
다음 글 : 2.8. Synchronous Use