SpringCloud OpenFeign 远程调用服务接口

  1. 添加 OpenFeign 依赖
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
  1. 新建接口CouponFeignService,并在该接口上添加注解@FeignClient("服务名称"),在此接口中声明远程调用的方法名称和请求路径
//这是一个声明式的远程调用
//指明调用哪一个服务
@FeignClient("gulimall-coupon")
public interface CouponFeignService {

    @RequestMapping(value = "/coupon/coupon/member/list")
    public R memberCoupon();
}
  1. 在要远程调用的主启动类上添加注解@EnableFeignClients(basePackages = "上述Feign接口的包名称")
//开启远程调用并指明哪个包使用远程调用
@EnableFeignClients(basePackages = "com.fj.gulimall.member.feign")
//开启服务注册发现
@EnableDiscoveryClient
@SpringBootApplication
@MapperScan("com.fj.gulimall.member.dao")
public class MemberApplication {

    public static void main(String[] args) {
        SpringApplication.run(MemberApplication.class,args);
    }
}

4.在Controller中注入CouponFeignService就可以实现远程服务调服务。

    @Autowired
    CouponFeignService couponFeignService;

    @RequestMapping(value = "/coupons")
    public R memberCoupon(){
        MemberEntity memberEntity = new MemberEntity();
        memberEntity.setNickname("张三");
        R memberCoupon = couponFeignService.memberCoupon();
        return  R.ok().put("member",memberEntity).put("coupons",memberCoupon.get("coupons"));
    }
posted @ 2022-07-17 21:38  加瓦同学  阅读(213)  评论(0)    收藏  举报