引入依赖:
XML
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
1. 启动 / 核心注解
@EnableFeignClients加在启动类上,开启 OpenFeign 功能,表示这个服务开始远程调用功能。
@FeignClient加在调用接口的接口类上,标记这是 Feign 远程调用客户端。

其中value代表的是要调用哪个服务,如果要调用第三方服务,可以使用url属性,指定要发送请求的url
2. 请求映射注解
沿用的SpringBoot的注解,只不过区别是指定发送请求的类型
- @GetMapping:发送get请求
- @PostMapping:发送post请求
- @PutMapping:发送put请求
- @DeleteMapping:发送delete请求
java
@FeignClient(value = "service-product")
public interface ProductFeignClient {
@GetMapping("/product/{id}")
Product getProductById(@PathVariable("id") Long id);
}
3. 参数绑定注解
同样沿用SpringBoot的注解:
- @RequestParam:普通普通表单参数、URL 拼接参数必须加。Feign 中简单参数必须显式加 @RequestParam,否则报错。
- @PathVariable:路径变量,如 /user/{id},必须加。
- @RequestBody:JSON 对象传参,POST 请求传实体类用这个,只能用于 POST。
- @RequestHeader:传递请求头参数,比如 token、登录凭证。
- @RequestPart:文件上传时使用,传文件 + 参数。
使用时直接注入feign对象调用其中方法即可,openFeign会自动从注册中心获取服务并负载均衡的发送请求