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

相关推荐
憧憬成为java架构高手的小白10 小时前
git工作流程简化版
java·spring boot·git
触底反弹10 小时前
苹果换芯片,用户说「真香」;微软换芯片,用户说「退货」—— 同样的事,为什么结果完全相反?
java·架构·编程语言
澜舟孟子开源社区10 小时前
架构创新、上下文工程、可信计算、自适应优化:澜舟科技智能体核心技术解析
java·科技·架构
淘矿人10 小时前
DeepSeek V4对决Claude 4.8:AI模型终极横评
java·开发语言·人工智能·python·sql·php·pygame
IT利刃出鞘10 小时前
Java多线程--三种写法(Thread、Runnable、Callable)
java·多线程
两年半的个人练习生^_^11 小时前
JMM 进阶:彻底理解 volatile 实现原理
java·开发语言
Yeats_Liao11 小时前
Java网络编程(五):Selector选择器与高并发实现
java·后端·架构
AC赳赳老秦11 小时前
OpenClaw任务复盘自动化:统计每日完成工作、遗留问题,优化工作节奏
java·大数据·linux·运维·服务器·数据库·openclaw
兰令水11 小时前
leecodecode【层序遍历】【2026.6.3打卡-java版本】
java·开发语言
Halo_tjn11 小时前
反射与设计模式2
java·开发语言·算法