设计模式 建造者模式

建造者模式

* 根本思想,不提供原材料,而是一步一步进行组装

* 在 Spring 中最常用的建造者为 RestTemplate 和 WebClient 此处以 WebClient 为例
// 配置类
@Configuration
public class WebClientConfig {
    @Bean
    public WebClient.Builder webClientBuilder() {
        return WebClient.builder();
    }
}
// 消息封装类
@Setter
@Getter
public class HttpBinResponse {
    private Map<String, String> args;
    private Headers headers;
    private String origin;
    private String url;

    @Getter
    @Setter
    public static class Headers {
        private String accept;
        @Setter
        private String acceptEncoding;
        private String host;
        private String userAgent;
        private String xAmznTraceId;

        @JsonProperty("Accept")
        public String getAccept() {
            return accept;
        }

        @JsonProperty("Accept-Encoding")
        public String getAcceptEncoding() {
            return acceptEncoding;
        }

        @JsonProperty("Host")
        public String getHost() {
            return host;
        }

        @JsonProperty("User-Agent")
        public String getUserAgent() {
            return userAgent;
        }

        @JsonProperty("X-Amzn-Trace-Id")
        public String getXAmznTraceId() {
            return xAmznTraceId;
        }

    }
}
// 控制器
@RestController
public class TestController {
    final
    WebClient.Builder webClientBuilder;

    public TestController(WebClient.Builder webClientBuilder) {
        this.webClientBuilder = webClientBuilder;
    }

    @GetMapping
    public Mono<HttpBinResponse> get() {
        WebClient webClient = webClientBuilder.build();
        return webClient.get()  // 根据需要一步一步组装对象
                .uri("https://httpbin.org/get")
                .retrieve().bodyToMono(HttpBinResponse.class);
    }
}
* 此处测试代码较为麻烦,大家手动测试即可
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值