SpringCloud快速入门(8)---- OpenFeign(远程调用)

引入依赖:

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会自动从注册中心获取服务并负载均衡的发送请求

相关推荐
leikooo2 小时前
用餐厅和盘子理解栈和堆
java·数据结构·链表·rust
Ivanqhz3 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
沙漠之主4 小时前
C++编程教学设计资料:从入门到实战的完整课程方案
java·前端·c++
FPGA小徐4 小时前
PA1 基础设施(2)深度解析:NEMU 中 ITRACE、MTRACE、FTRACE、IRINGBUF、ETRACE、DIFFTEST 全解析
java·服务器·网络
YOLO数据集集合5 小时前
EvoAgent:面向PR研发治理的自进化Multi-Agent Harness系统
java·开发语言·目标检测·agent·自进化
知行EDI5 小时前
知行之桥 MaBang 端口使用指南——Create Order 订单创建篇
java·服务器·数据库
笑鸿的学习笔记5 小时前
C++笔记之大块顺序写
java·c++·笔记
打工仔折腾 AI5 小时前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解
java·jvm·人工智能·后端·python·langchain·ai agent 实战
殷色玫瑰6 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·linux·c语言·c++
code_slave(码畜)6 小时前
微服务架构落地:基础服务 —— 报表服务(中篇:元数据、查询引擎、缓存与权限落地)
spring boot·spring cloud·缓存·微服务·架构