如何为同一Feign客户端界面的不同配置文件切换2个注释?
与负载均衡器URL一起使用时,我使用Feign Client Interface具有以下代码。我称之为Non-Eureka,以供参考:
@FeignClient(name = "DEPOSIT-FEIGN-CLIENT", url = "${DEPOSIT-DATA-URL}")
public interface DepositFeignClient {
@RequestMapping(method = RequestMethod.GET, value = "/path/to/api/{accountNumber}", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
DepositResponse getDepositDetails(@PathVariable(value = "accountNumber") String accountNumber);
}
另一方面,在使用Eureka和Spring Cloud Gateway时,我使用以下代码:
@FeignClient(value = "ABCD-GATEWAY", path = "${DEPOSIT-EUREKA-APPNAME}")
public interface DepositFeignClient {
@RequestMapping(method = RequestMethod.GET, value = "/path/to/api/{accountNumber}", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
DepositResponse getDepositDetails(@PathVariable(value = "accountNumber") String accountNumber);
}
现在,我的要求是通过类似Spring Profile的方式来控制它们,以便如果配置文件名称=“ Eureka”,则Eureka注释处于活动状态,而Non-Eureka处于活动状态。
我必须以某种方式在单个接口名称中执行此操作,因为我使用它的方式如下:
private final DepositFeignClient depositFeignClient;
//other code
DepositResponse depResponse =
depositFeignClient.getDepositDetails(accountNumber);
//other code
请让我知道是否以某种方式使用@Profile, @ConditionalOnProperty或其他任何方式可以帮助解决我的目的。我正在使用Spring-boot 2.x和Java 8
编辑 在Eureka情况下,我使用path和value属性,在非Eureka情况下,我使用名称和url属性,请注意,这就是问题所在。
问题来源:Stack Overflow
您应该尝试创建2个application-{profileName}.properites文件,根据需要设置参数,然后在该配置文件处于活动状态时运行。
本文的第8节也可能对您有用:https : //www.baeldung.com/spring-profiles
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。