@feignClient使用

之前

传统意义上或者按照官方用法是:

  • 调用方服务中主启动类上加@EnableFeignClients注解
  • 调用方服务中定义接口、定义方法,接口上加@FeignClient注解,方法上加@requestMapping
  • 调用方服务中某一个service中使用@autowired引入当前接口像调用本服务网方法一样进行调用
  • 被调用方的接口正常书写即可

目前

为了调用方便或者说使用方便:

  • 被调用方定义提供服务的接口、方法,接口上加@feignClient注解

@FeignClient(contextId = "remoteDataService", value = "${cloud.name.service.coordinate:data-coordinate}")
public interface RemoteDataItemService {

    /**
     * 根据名称获取数据
     * @param name 名称
     * @param from
     * @return
     */
    @GetMapping("/MyDemo/getOne")
    DataItemVO getOne(@RequestParam("name") String name, @RequestHeader(SecurityConstants.FROM) String from);

  • 在被调用方
    @RestController
    @RequestMapping(“/MyDemo”)
    @Api(value = “数据接口服务”, tags = “数据接口服务”)
    public class FeignDataApi {

    /**
     * 和正常接口一样,controller,service,mapper
     * @param name
     * @return
     */
    @Inner(value = false)
    @GetMapping("/getOne")
    public DataItemVO  getOne(@RequestParam("name") String name){
        // 这里去调用service中的方法获取数据
    }

  • 将被调用方提供暴露的接口打成api包
  • 调用方服务中直接引入api包并通过@autowired引入进行调用即可
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容