【问题标题】:Set class for custom builder为自定义构建器设置类
【发布时间】:2018-07-02 14:50:36
【问题描述】:

我有一个我想用于配置的自定义构建器:

RestClient client = RestClientBuilder.builder()
                    .gatewayUrl("http://localhost:8080")
                    .token("d778dh")
                    .usernamePassword("petrov", "password2")
                    .build();

自定义生成器:

public class RestClientBuilder {    ....

    public static RestClientBuilder builder() {
        return new RestClientBuilder();
    }

    public RestClientBuilder connectionTimeout(int milliseconds) {
        ReactorClientHttpConnector connector =
                new ReactorClientHttpConnector(options ->
                        options.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 2000));

        return connector;
    }

    public RestClient build() throws SSLException {
        SslContext sslContext = sslContextBuilder != null ? sslContextBuilder.build() : null;
        return new RestClient(gatewayUrl.toString(), token, username, password, sslContext);
    }
}

我想用这段代码来设置自定义超时:

ReactorClientHttpConnector connector =
            new ReactorClientHttpConnector(options ->
                    options.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 2000));
WebClient webClient = WebClient.builder().clientConnector(connector).build();

如何在构建器中使用此自定义代码?我尝试了上面的示例,但我必须使用 Object Cast。还有其他解决办法吗?

【问题讨论】:

    标签: java spring-webflux


    【解决方案1】:

    RestClientRestClientBuilder 不是 Spring 类,这就是这些类不期望 Spring WebFlux 客户端连接器配置它们的原因。

    您可能正在寻找WebClient

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      相关资源
      最近更新 更多