Vid*_*amy 7 spring-cloud netflix-feign spring-cloud-feign feign spring-cloud-netflix
我知道我们可以通过提供 url Ex 来强制 FeignClient 使用 OkHttp 而不是 Ribbon。 @FeignClient(url="serviceId", name="serviceId")
即使只提供了名称,我也希望使用 OkHttpClient。前任。@FeignClient(name="serviceId")
根据 spring cloud 文档“如果启用 Ribbon,则它是 LoadBalancerFeignClient,否则使用默认的 feign 客户端。”
如何禁用功能区以便使用默认的伪装客户端。
我有同样的问题,但我的设置有点不同,我没有让它在我的情况下工作(使用 spring-cloud-starter-openfeign 和 spring mvc 样式注释)。
仅供参考:我需要一个带有 SSLSocketFactory 的自定义客户端,最终只是为客户端创建 bean 并保留 url@FeignClient
@Bean
public Client myClient() {
return new Client.Default(getSSLSocketFactory(), new NoopHostnameVerifier());
}
Run Code Online (Sandbox Code Playgroud)
但是,我们确实有使用 spring-cloud-starter-feign 的项目,其中注释上未提供 URL。不确定下面的配置是否完整(我没有设置),但它可能会为您指明正确的方向......
依赖关系
compile("org.springframework.cloud:spring-cloud-starter-feign") {
exclude group: 'org.springframework.cloud', module: 'spring-cloud-starter-ribbon'
exclude group: 'org.springframework.cloud', module: 'spring-cloud-starter-archaius'
}
Run Code Online (Sandbox Code Playgroud)
配置
@Configuration
@Import(FeignClientsConfiguration.class) // org.springframework.cloud.netflix.feign.FeignClientsConfiguration
public class MyConfig {
@Value("${client.url}")
private String url;
@Bean
public MyClient myClient(final Decoder decoder, final Encoder encoder, final Client client) {
return Feign.builder().client(client)
.encoder(encoder)
.decoder(decoder)
.target(MyClient.class, url);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8183 次 |
最近记录: |