作用:微服务之间远程调用
使用:
服务被调用方只需要注册到注册中心。
服务调用方:
(1)pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
(2)主启动类加@EnableFeignClients注解
@EnableFeignClients(basePackages= "com.atguigu.gulimall.gulimallproduct.feign")
basepackages 可以指明远程调用接口的具体位置,如果该接口在主启动的包下或其子包下时可以不加。
(3)创建接口
@FeignClient("service-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
* @param spuBoundTo
* @return
*/
@PostMapping("/gulimallcoupon/smsspubounds/save")
R saveSpuBounds(@RequestBody SpuBoundTo spuBoundTo);
@PostMapping("/gulimallcoupon/smsskufullreduction/saveinfo")
R saveSkuReduction(@RequestBody SkuReductionTo skuReductionTo);
}
@FeignClient :指明要调用的微服务名
然后创建方法,指明路径即可调用另一个微服务