Openfeign快速使用

98 阅读1分钟

远程调用:

Step 1:在优惠券模块的controller层添加优惠券

com.southlion.gulimall.coupon.controller.CouponController

@RequestMapping("coupon/coupon")
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));
}

Step 2:在会员新建feign包,加入如下

com.southlion.gulimall.member.feign.CouponFeignService

@FeignClient("gulimall-coupon")
public interface CouponFeignService {
	//@RequestMapping("coupon/coupon")
	//public class CouponController 
    //以下映射需要加上前缀/coupon/coupon
    @RequestMapping("/coupon/coupon/member/list")
    public R membercoupons();
}

Step 3:在会员的启动类中加入@EnableFeignClients(basePackages = "com.southlion.gulimall.member.feign"),指明远程调用包

com.southlion.gulimall.member.GulimallMemberApplication

//添加EnableFeignClients注解
@EnableFeignClients(basePackages = "com.southlion.gulimall.member.feign")

@EnableDiscoveryClient
@MapperScan("com.southlion.gulimall.member.dao")
@SpringBootApplication
public class GulimallMemberApplication {

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

}

Step 4:测试远程调用

com.southlion.gulimall.member.controller.MemberController

@RequestMapping("member/member")
public class MemberController 
@Autowired
CouponFeignService couponFeignService;

@RequestMapping("/coupons")
public R test(){
    MemberEntity memberEntity = new MemberEntity();
    memberEntity.setNickname("张三");
    R membercoupons = couponFeignService.membercoupons();
    membercoupons.get("coupons");
    return R.ok().put("member",memberEntity).put("coupons",membercoupons.get("coupons"));

}

image-20220722100051030

格式化JSON之后:

{
    "msg": "success", 
    "code": 0, 
    "coupons": [
        {
            "id": null, 
            "couponType": null, 
            "couponImg": null, 
            //优惠券满100减10
            "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
    }
}