谷粒商城学习——P90 调用远程服务

谷粒商城学习——P20-27springcloud alibaba课程中已经学过openfeign调用远程服务的基本示例,重复的不在赘述

被调用的远程controller接口指定了@PostMapping和@RequestBody,则调用的时候也需要指定这两个注解以保证签名一致

关键代码:

SpuBoundsController:接口提供方
谷粒商城学习——P90 调用远程服务
@RestController
@RequestMapping("coupon/spubounds")
public class SpuBoundsController {
    @Resource
    private SpuBoundsService spuBoundsService;
    @PostMapping("/save")
    public R save(@RequestBody SpuBoundsEntity spuBounds){
        spuBoundsService.save(spuBounds);
        return R.ok();
    }
}
View Code

CouponFeignService:调用方的接口,指定远程调用信息
谷粒商城学习——P90 调用远程服务
@FeignClient("gulimall-coupon")
public interface CouponFeignService {

    /**
     * 1、CouponFeignService.saveSpuBounds(spuBoundTo);
     *      1)、@RequestBody将这个对象转为json。
     *      2)、找到gulimall-coupon服务,给/coupon/spubounds/save发送请求。
     *          将上一步转的json放在请求体位置,发送请求;
     *      3)、对方服务收到请求。请求体里有json数据。
     *          (@RequestBody SpuBoundsEntity spuBounds);将请求体的json转为SpuBoundsEntity;
     * 只要json数据模型是兼容的。双方服务无需使用同一个to
     */
    @PostMapping("/coupon/spubounds/save")
    R saveSpuBounds(@RequestBody SpuBoundTo spuBoundTo);
}
View Code

SpuInfoServiceImpl:调用具体实现
谷粒商城学习——P90 调用远程服务
    @Resource
    private CouponFeignService couponFeignService;

    @Override
    public void savesupInfo(SpuSaveVo vo) {
        SpuBoundTo spuBoundTo = new SpuBoundTo();
        R r = couponFeignService.saveSpuBounds(spuBoundTo);
    }
View Code

 

上一篇:完整数据集中随机抽取训练集和测试集


下一篇:淘宝npm镜像