Spring Web Reactive | 2. WebClient | 2.6. Attributes

요청에 속성을 추가 할 수 있다. 이것은 정보를 필터 체인에 전달 특정 요청에 대한 필터의 동작에 영향을 미치는 경우에 유용하다. 예를 들면 아래와 같다.

Java

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);

    }

Kotlin

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 데이터를 기반으로 요청 속성을 설정할 수 있다.




최종 수정 : 2021-04-12