我有同样的问题,但我的设置有点不同,我没有让它在我的情况下工作(使用 spring-cloud-starter-openfeign 和 spring mvc 样式注释)。
仅供参考:我需要一个带有 SSLSocketFactory 的自定义客户端,最后只是为客户端创建 bean 并保持 url@FeignClient
@Bean
public Client myClient() {
return new Client.Default(getSSLSocketFactory(), new NoopHostnameVerifier());
}
但是,我们确实有使用 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'
}
配置
@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);
}
}