Fegin工具类
fegin工具类使用:应用于微服务项目,远程调用其他微服务的方法并获取返回值。
代码如下:
FeignClient工具类
**
* 远程调用接口
* contextId: 注册Feign Client Configuration的时候需要一个名称
* value: 指定的是调用服务的微服务名称
* fallbackFactory:异常,打印日志,熔断作用
*/
@FeignClient(contextId = "xxxFeginService", value = xxxNameConstants.xxx, fallbackFactory = xxxFeginServiceFallbackFactory.class)
public interface xxxFeginService {
/**
* 远程调用接口
* @return
* method = RequestMethod.POST post请求
*/
@ResponseBody
@RequestMapping(value = "/xxxControl/xxxPost", method = RequestMethod.POST)
//使用Fegin调用weight-queryWeigh
public AjaxResult queryWeigh(@RequestBody HashMap<String, Object> map);
}
FeignClient熔断工具类
//FeignClient熔断工具类
@Component
public class xxxFeginServiceFallbackFactory implements FallbackFactory<xxxFeginService> {
//打印日志
private static final Logger log = LoggerFactory.getLogger(xxxFeginServiceFallbackFactory.class);
@Override
public xxxFeginService create(Throwable cause) {
log.error("业务连接服务调用失败:{}", cause.getMessage());
return new xxxFeginService()
{
@Override
public AjaxResult queryWeigh(@RequestBody HashMap<String, Object> map) {
//如果失败,返回失败结果
return AjaxResult.error("获取接口调用失败:" + cause.getMessage());
}
};
}
Fegin工具类常见问题
fegin工具简单问题:
1、使用fegin尽量使用map传递参数,如果接收的为对象,可以转为map后在进行传递。
2、收取参数需要与实际的controller的返回对象一致,不然容易报错。