diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java index 5ae1c6e0..27df9616 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java @@ -448,7 +448,6 @@ public class FeignClientFactoryBean if (StringUtils.hasText(url) && !url.startsWith("http")) { url = "http://" + url; } - String url = this.url + cleanPath(); Client client = getOptional(feignClientFactory, Client.class); if (client != null) { if (client instanceof FeignBlockingLoadBalancerClient) { @@ -489,7 +488,7 @@ public class FeignClientFactoryBean @SuppressWarnings({ "unchecked", "rawtypes" }) private HardCodedTarget resolveTarget(FeignClientFactory context, String contextId, String url) { if (StringUtils.hasText(url)) { - return new HardCodedTarget(type, name, url); + return new HardCodedTarget(type, name, url + cleanPath()); } if (refreshableClient) { @@ -505,7 +504,7 @@ public class FeignClientFactoryBean "Provide Feign client URL either in @FeignClient() or in config properties."); } - return new PropertyBasedTarget(type, name, config); + return new PropertyBasedTarget(type, name, config, cleanPath()); } private boolean isUrlAvailableInConfig(String contextId) { diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/PropertyBasedTarget.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/PropertyBasedTarget.java index dd7b35ce..f7dfb291 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/PropertyBasedTarget.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/PropertyBasedTarget.java @@ -33,15 +33,19 @@ public class PropertyBasedTarget extends Target.HardCodedTarget { private final FeignClientProperties.FeignClientConfiguration config; - public PropertyBasedTarget(Class type, String name, FeignClientProperties.FeignClientConfiguration config) { + private final String path; + + public PropertyBasedTarget(Class type, String name, FeignClientProperties.FeignClientConfiguration config, + String path) { super(type, name, config.getUrl()); this.config = config; + this.path = path; } @Override public String url() { if (url == null) { - url = config.getUrl(); + url = config.getUrl() + path; } return url; }