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
找了大半天,试了各种方法,终于有一个能够使用的累死我了,记录以备后用。