Spring/WebClient

[WebClient] Attributes

blockbuddy93 2024. 3. 28. 14:28

요청에 속성을 추가할 수 있습니다. 이는 필터 체인을 통해 정보를 전달하고 특정 요청에 대한 필터의 동작을 영향을 주고 싶을 때 편리합니다. 예를 들어:

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

참고로, WebClient.Builder 수준에서 defaultRequest 콜백을 전역적으로 구성할 수 있으며, 이를 통해 모든 요청에 속성을 삽입할 수 있습니다. 예를 들어 Spring MVC 애플리케이션에서 ThreadLocal 데이터를 기반으로 요청 속성을 채우는 데 사용할 수 있습니다.