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
找了大半天,試了各種方法,終於有一個能夠使用的累死我了,記錄以備后用。