Spring cloud之Feign使用

104 阅读1分钟

前言

之前一直用Rest来调用第三方接口 一直听同事说Feign 才开始了解 做个记录~

开始

以前调用接口方式一直为

restTemplate.postForObject(url, httpEntity, Object.class);

Feign则是更为优雅的实现了接口调用

1.导入pom

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2.启动类引入Feign注解

@SpringBootApplication
@EnableFeignClients
public class OrderApplication {

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

}

3.编写Feign配置类(用来规范接口)

@FeignClient("sotck-server")
public interface StockClients {
    @GetMapping("stock/reduct/{id}")
    String findById(@PathVariable("id") Integer id);
}

4.调用接口

String msg = stockClients.findById(1);

调用的接口模块

@RestController
@RequestMapping("/stock")
public class StockController {

    @RequestMapping("/reduct/{id}")
    public String reduct(@PathVariable("id") Integer id){
        System.out.println("扣减库存");
        return "扣减库存id:" + id;
    }
}

结果

image.png