今日收到一个需求,采集好的数据需要发送到不同的后端,这个采集端是物理上只能采集一次的,但是又有dev环境,测试环境和正式环境都需要采集到的数据,因此需要一个采集器配置多个后端地址,但是OpenFeign默认使用方法不能动态修改URL,因此需要使用OpenFeign提供的动态URL配置。
假设目前是这样的一个后端接口:
@FeignClient(name = "dynamic-url-client", url = "${dynamic-url-client.url}")
public interface DynamicUrlClient {
/**
* 测试接口
*/
@PostMapping("/test")
String post(User user);
}
在网上查找了需求,发现openfeign有一个动态URL配置,非常简单,新增一个URI参数即可 修改为下面的接口就可以
@FeignClient(name = "dynamic-url-client", url = "${dynamic-url-client.url}")
public interface DynamicUrlClient {
/**
* 测试接口
*/
@PostMapping("/test")
String post(User user);
/**
* 修改后的接口
*/
@PostMapping("/test")
String post(URI uri,User user);
}
// 使用方式
@Autowired
DynamicUrlClient dynamicUrlClient;
dynamicUrlClient.post(new URI("http://www.baidu.com"),user);
该方法在使用时会忽略掉默认的URL,使用传入的URI,这里还需要自己处理异常。 over~