P22 OpenFeign测试远程调用功能

给模块的POM.xml文件依赖openfeign
远程调用的步骤:
1/想要远程调用别的服务
1.引入openfeign
2.编写一个接口,告诉SpringCloud这个接口需要调用远程服务
3.在调用别的服务的方法上开启远程调用功能@EnableFeignClients

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

想要使用会员模块远程调用优惠券模块
,需咬现在coupon模块中的CouponController中先生成一张优惠券
在public class CouponController{}中添加

//查看用户所有优惠券的方法
    @RequestMapping("/member/list")
    public R membercoupons(){
        CouponEntity couponEntity = new CouponEntity();
        couponEntity.setCouponName("满100减10");
        return R.ok().put("coupons",Arrays.asList(couponEntity));
    }

2.在member模块com.atguigu.gulimall.member创建feign包,创建CouponFeignService抽象方法,并将com.atguigu.gulimall.coupon.controller.CouponController内上面我们创建的方法复制进来

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")
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
    //复制过来的方法路径为("/member/list"),但我们是从外部访问,所以要补全路径("/coupon/coupon/member/list")
    @RequestMapping("/coupon/coupon/member/list")
    public R membercoupons();
}

程序先找@FeignClient(“gulimall-coupon”)声明的gulimall-coupon位置,再发送@RequestMapping(“/coupon/coupon/member/list”)请求到这个位置执行public R membercoupons()方法

3.@EnableFeignClients(basePackages = “com.atguigu.gulimall.member.feign”)
所有远程调用的接口都放在了feign包下,声明后只要程序启动就会扫描此路径下所有注解了@FeignClient的接口进而执行接口的请求

测试一下
在com.atguigu.gulimall.member.controller.MemberController中增加一个会员并设置昵称为张三

//获取当前会员所有的优惠券
    @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("coupon",membercoupons.get("coupons"));
    }

远程调用之前生成的优惠券
上线2个服务
在member服务中发送/member/member/coupons请求可以得到用户的所有coupons

{"msg":"success","code":0,"coupon":[{"id":null,"couponType":null,"couponImg":null,"couponName":"满100减10","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}}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值