微服务nacos feign远程调用

  1. 两个工程需要在nacos中进行注册,否者找不道远程调用的工程,会报错微服务nacos feign远程调用_第1张图片
  2. 在gulimall-coupon工程中创建一个方法
 @GetMapping("/member/list")
    public R membercoupons(){
        CouponEntity couponEntity = new CouponEntity();
        couponEntity.setCouponName("满一百减五十");
        return R.ok().put("coupons", Arrays.asList(couponEntity));
    }
  1. 在gulimall-member 中进行远程调用
    1) 在该工程下创建一个feign包,创建接口,用来声明式调用
@FeignClient("gulimall-coupon") # application name
public interface CouponFeignService {
    @RequestMapping("/coupon/coupon/member/list")
    public R membercoupons();
}

2)将要调用的方法的方法名直接拷贝过来,访问的地址全路径名也进行拷贝
3)调用的地方将该service注入后进行使用

    @RequestMapping("/coupons")
    public R test(){
        MemberEntity memberEntity = new MemberEntity();
        memberEntity.setNickname("张三");
        R membercoupons = couponFeignService.membercoupons();
        return R.ok().put("member",memberEntity.getNickname()).put("coupons", membercoupons.get("coupons"));
    }
  1. application开启远程配置,并扫描远程调用的feign包
@EnableFeignClients(basePackages = "com.atguigu.gulimall.member.fegin") # 开启远程调用功能
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallMemberApplication {
    public static void main(String[] args) {
        SpringApplication.run(GulimallMemberApplication.class, args);
    }
}

返回结果:
在这里插入图片描述
完成feign的远程调用其他程序的功能。

你可能感兴趣的:(尚硅谷,2020微服务分布式电商)