Установить класс для пользовательского конструктора - PullRequest
0 голосов
/ 02 июля 2018

У меня есть этот пользовательский конструктор, который я хотел бы использовать для конфигурации:

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. Есть ли другое решение?

1 Ответ

0 голосов
/ 02 июля 2018

RestClient и RestClientBuilder не являются классами Spring, поэтому эти классы не ожидают, что их сконфигурирует клиентский коннектор Spring WebFlux.

Вы, вероятно, ищете WebClient.

...