spring cloud feign 的调用过程

一世执手 提交于 2020-08-04 22:13:40

member 服务远程调用coupon服务

1. 这两个服务要同时注册到nacos中。

2.引入open-feign。

3.创建feign包编写接口CouponFeignService

package com.atguigu.gulimall.member.feign;
import com.atguigu.common.utils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;


@FeignClient("gulimall-coupon")
public interface CouponFeignService {


    @RequestMapping("coupon/coupon/member/list")
    public R membercoupons();
}


注意:@RequestMapping("coupon/coupon/member/list")中的地址
是在coupon服务中的congtroller的方法

@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
   ...

    @RequestMapping("/member/list")
    public R membercoupons(){
        CouponEntity couponEntity = new CouponEntity();
        couponEntity.setCouponName("满100减50");
        return R.ok().put("coupons",Arrays.asList(couponEntity));
    }
   ...
}

4.@EnableFeignClients 加入到启动项目代码中

@EnableFeignClients(basePackages = "com.atguigu.gulimall.member.feign")
@SpringBootApplication
@EnableDiscoveryClient
public class GulimallMemberApplication {

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

}

5.方法中调用feign接口的方法

@RestController
@RequestMapping("member/member")
public class MemberController {
   ...

    //注入feign的接口
    @Autowired
    private CouponFeignService couponFeignService;

    @RequestMapping("/coupons")
    public R test(){
        MemberEntity memberEntity = new MemberEntity();
        memberEntity.setNickname("张山");
        R membercoupons = couponFeignService.membercoupons();//调用feign的方法
        return R.ok().put("member",memberEntity).put("coupons",membercoupons.get("coupons"));
    }
...
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!