如何从 Spring WebClient 检索配置的基本 URL?

问题描述 投票:0回答:2

Spring 反应式 WebClient 可以使用基本 URL 来构建:

import org.springframework.web.reactive.function.client.WebClient;
...
@Bean
public WebClient webClient(WebClient.Builder builder) {
    return builder
            .baseUrl("http://example.org")
            .build();
    // or alternatively a shortcut
    // return WebClient.create("http://example.org");
}

有没有办法从已经存在的WebClient实例中

检索
配置的基本URL?

类似:

@Autowired
private WebClient webClient;
...
String baseUrl = webClient.getBaseUrl(); // I want to know how this WebClient is configured
assertEquals("http://example.org", baseUrl);

或者类似的东西

var configuration = webClient.getConfiguration(); 
String baseUrl = configuration.getBaseUrl();
assertEquals("http://example.org", baseUrl);

我知道参数的处理是内部的且特定于实现。但是我不明白为什么,如果是接口公开了setter(通过构建器或工厂方法参数),它也公开了getter。我在创建实例时没有指定实现。所以我自然会期望界面能告诉我它创造了什么价值。我看不出有任何合理的理由解释为什么这些信息没有在界面本身中公开。

java spring configuration spring-webclient
2个回答
2
投票

WebClient 是一个没有 API 来获取基本 URL 的接口,因此也许某些实现类有一个接口,但这将使您的代码依赖于所选的实现类。


0
投票

可以从实现类中获取此信息,在我的例子中注入了 DefaultWebClient。因此调用下面的代码会返回基本 url。

((DefaultWebClient) webClient).builder.baseUrl
© www.soinside.com 2019 - 2024. All rights reserved.