springboot使用feign调用远程接口流程及传参问题

一、在客户端调用需要先导入feign接口依赖

    1、我使用的是openfeign,这个依赖大家自行下载,

 

二、在客户端写一个service接口,用来调用远程feign接口

    1、在service的接口上面需要使用@FeignClient注解修饰,

这个注解里面有几个参数需要注I意,URL:就是远程端需要调用接口的服务URL路径,name:就是注册到同一个注册中心的服务名,value和name一样,fallback和fallbackFactory参数一样,都有回滚的意思,就是远程如果报错或者出现问题,就会执行回滚操作。我们一般推荐使用fallbackfactory因为它可以抛异常,也可以打印堆栈信息,方便排查问题。

    2、在客户端接口,需要使用请求方式注解修饰,有@RequestMapping ,必须有一个参数value,value:是远程端接口路径,一个需要注意的地方,请求方式必须保持一致,@GetMapping,@PostMapping两种请求方式。

三、客户端启动类,必须加上相关注解注入到spring容器

       1、在客户端启动类,需要使用@EnableFeignClients,@EnableDiscoveryClient两个注解必须使用,如果客户端的service使用的服务名,则启动类可以不需要指定service接口路径位置

四、使用feign调用远程可能出现的问题

       1、在调用远程端feign接口时,可能会出现服务找不到的问题,这种问题一般是服务没有启动,或者服务名书写错误,

        2、调用接口时,也可能会出现,参数接受不到问题,简单参数可以使用@RequestParam或者@PathVariable  。在使用RequestParam时,需要指定value的值,要不然获取不到参数,在使用PathVariable时,就是在service请求方式路径里面指定字段,用一个占位符指定,

       3、如果传递的有多个参数,我们可以封装为josnObject,或者封装为map集合传递,因为feign在远程调用时,只能有一个@Requestbody注解修饰远程端,在客户端service时,直接传递对象就行,不需要注解,但是远程端,接受时,一定要用@Requestbody注解修饰,要不然获取不到对象信息。

      4、客户端是其他简单类型的话,在远程端,可以使用注解修饰,也可以不使用修饰,都可以获取到数据。

 

有什么问题欢迎大家一起探讨,一起学习,有什么不足之处,可以直接说出来。加油💪

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值