1.首先得有一个远程接口,并且这个服务得注册到注册中心。
@RestController
@RequestMapping("coupon/spubounds")
public class SpuBoundsController {
@PostMapping("/save")
public R save(@RequestBody SpuBoundsEntity spuBounds){
spuBoundsService.save(spuBounds);
return R.ok();
}
}
2.在调用方创建接口来映射远程接口。
package com.atguigu.gulimall.product.feign;
// 远程接口服务在注册中心注册的服务名
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
// 这里的接口地址要与远程接口地址一致
@PostMapping("/coupon/spubounds/save")
// @RequestBody作用:把SpuBoundTo对象转为Json放在请求体中。
// 这个对象不一定要和接收方一致,只要属性一致即可接收。
// 接收方eg:public R save(@RequestBody SpuBoundsEntity spuBounds) 也可以接收
R saveSpuBounds(@RequestBody SpuBoundTo spuBoundTo);
}
3.启动类开启远程调用
// 如果远程接口和启动类是同一父包可以不写
@EnableFeignClients("com.atguigu.gulimall.product.feign")
@EnableDiscoveryClient
@MapperScan("com.atguigu.gulimall.product.dao")
@SpringBootApplication
public class GulimallProductApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallProductApplication.class, args);
}
}
4.注入接口即可调用
// 自动注入 @Autowired CouponFeignService couponFeignService; // 调用 couponFeignService.saveSpuBounds(spuBoundTo);



