feign是在客户端的操作
- 声明式REST客户端
- 采用基于接口的注解
1.引入feign依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId> feign依赖
</dependency>
2.在启动上加注解
@EnableFeignClients
注:如果feign接口不在本项目下,需要指定引入feign接口的包名 @EnableFeignClients(basePackages = "ppc.product.client")
3.在接口添加注解
@FeignClient(name = "product")//指向eureka上注册的服务名字
@FeignClient(name = "product")//指向服务名字
public interface FeignClient {
@GetMapping("/product/listForOrder")//调用服务的接口 参数 返回参对应上
List<ProductInfoOutput> listForOrder(@RequestBody List<String> productIdList);
@GetMapping("/product/decreaseStock")
public void decreaseStock(@RequestBody List<DecreaseStockInput> decreaseStockInputList);
}
4.用到的地方Autowired进去,使用方法
@Autowired
private ProductClient productClient;
....
productClient.listForOrder(..){
productClient.listForOrder(...)
}