Feign 动态URL 解决记录

Feign中使用动态URL请求

(应当是spring-cloud-starter-openfeign,不知道和一般的feign有何差别)

在spring项目下,假设有这样个Feign的消费接口,原来写死请求百度

@FeignClient(value = "test-service", url="http://www.baidu.com")
public interface TestFeignClient {
    @PostMapping("/test")
    String test(@RequestBody TestBody body);
}

现在不仅可能会请求谷歌,也可能请求雅虎,以下是最简单的改造方法

@FeignClient(value = "test-service", url="EMPTY")
public interface TestFeignClient {
    @PostMapping("/test")
    String test(URI uri, @RequestBody TestBody body);
}

这样即可通过传入URI来替换写死的URL来请求,其中@FeignClient中url必须要有值,值是啥都行

调用例子:

@Autowired
private TestFeignClient testFeignClient;
public void test() {
    testFeignClient.test(new URI("http://www.baidu.com"), new TestBody());
    testFeignClient.test(new URI("http://www.google.com"), new TestBody());
    testFeignClient.test(new URI("http://www.yahoo.com"), new TestBody());
}

原理

   不明,能用就行,后续再研究(咕咕咕)

资料

   https://blog.csdn.net/qq_31772441/article/details/102531862

   找了大半天,试了各种方法,终于有一个能够使用的累死我了,记录以备后用。

原文地址:https://www.cnblogs.com/syui-terra/p/14386188.html