首页 > 解决方案 > Spring webclient - 如何使用包装器响应 POJO

问题描述

我们正在尝试将现有的 Spring Boot 应用程序迁移到 webflux 反应式应用程序。目前我们使用响应是包装类的 rest 模板进行远程调用。

public class RemoteResponse {
    private String metatdata;
    private Response responsePayload;
}

现在使用 spring WebClient,实际的 responsePayload 将是 Mono。所以理想情况下,包装器可能会像这样改变。

public class RemoteResponse {
    private String metatdata;
    private Mono<Response> responsePayload;
}

因此,我不能简单地使用它。

WebClient.create("http://localhost:8081").get()
                 .uri("/services/monoSamp")
                 .accept(MediaType.APPLICATION_JSON)
                 .retrieve()
                 .bodyToMono(RemoteResponse.class);

我无法在响应标头中发送元数据,因为它可能很大。处理这种情况的正确方法是什么?

标签: javaspring-webfluxproject-reactor

解决方案


推荐阅读