1、定义了一个通用的Feign接口如下
@FeignClient(name = "ana-service")
public interface AppServiceClient {
@RequestMapping(value = "/save")
public AnaReturnT<Integer> save(@RequestBody AppStruct appStruct) throws Exception;
@RequestMapping(value = "/get")
public AnaReturnT<AppStruct> get(@RequestParam("tagApp") String tagApp) throws Exception;
@RequestMapping(value = "/delete")
public AnaReturnT<Integer> deleteApp(@RequestParam("tagApp") String tagApp) throws Exception;
@PostMapping(value = "/getPhys")
public AnaReturnT<List<String>> getPhys(@RequestBody CalcParaApp appCalcPara) throws Exception;
@PostMapping(value = "/getInputData")
public AnaReturnT<DataCalcObjFeign> getInputData(@RequestBody CalcParaApp appCalcPara) throws Exception;
}
2、在运行过程中,我希望可以根据实际情况去调用不同的微服务,比如ana-service-mysql或者ana-service-redis,在事情情况中要怎么处理呢?
RequestInterceptor 发起请求前,可以让你修改url,不过这玩意,具体没试过,你可以试试@FeignClient(name = "/") 这样写 然后把服务名/插入到/后面
比如framework-server/ 插入到/后面,就变成/framework-server/ ,这样就达到了切换服务实现的方式了
我没试过这样是否能行,这只是理论上的修改url,
其实你要是这类服务不多的话,自己定义不同feign,自己去选择feign更舒服 或者是restTemplate自己起发送请求
感觉可以试一下反射强制修改url的方式 不知道可行不
那就多写几个feign接口