6、Feign分布式远程调用

1、引入OpenFeign依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2、…\coupon\controller\CouponController.java远程服务方法

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

3、…\member\feign\CouponFeignService.java编写接口

@FeignClient("mall-coupon")//告诉SpringCloud这个接口需要调用远程服务
public interface CouponFeignService {
    @RequestMapping("/coupon/coupon/member/list")//声明接口的方法都是调用哪个远程服务的哪个请求
    public R membercoupons();
}

4、…\member\MallMemberApplication.java启用Feign调用功能

@EnableFeignClients(basePackages="com.jd.mall.member.feign")
@EnableDiscoveryClient
@SpringBootApplication
public class MallMemberApplication {

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

5、…\member\controller\MemberController.java远程调用

@Autowired
CouponFeignService couponFeignService;

@RequestMapping("/coupons")
public R test(){
    MemberEntity memberEntity = new MemberEntity();
    memberEntity.setNickname("张三");//本地查询

    R membercoupons = couponFeignService.membercoupons();//远程调用
    return R.ok().put("member",memberEntity).put("coupons",membercoupons.get("coupons"));
}

6、启动微服务mall-coupon、mall-member,访问localhost:8000/member/member/coupons

{
    "msg":"success",
    "code":0,
    "coupons":[
        {
            "id":null,
            "couponType":null,
            "couponImg":null,
            "couponName":"100减50",
            "num":null,
            "amount":null,
            "perLimit":null,
            "minPoint":null,
            "startTime":null,
            "endTime":null,
            "useType":null,
            "note":null,
            "publishCount":null,
            "useCount":null,
            "receiveCount":null,
            "enableStartTime":null,
            "enableEndTime":null,
            "code":null,
            "memberLevel":null,
            "publish":null
        }
    ],
    "member":{
        "id":null,
        "levelId":null,
        "username":null,
        "password":null,
        "nickname":"张三",
        "mobile":null,
        "email":null,
        "header":null,
        "gender":null,
        "birth":null,
        "city":null,
        "job":null,
        "sign":null,
        "sourceType":null,
        "integration":null,
        "growth":null,
        "status":null,
        "createTime":null
    }
}

这样,会员服务就成功从优惠卷服务中获取到信息。

猜你喜欢

转载自blog.csdn.net/KAIZ_LEARN/article/details/107666872