news 2026/7/15 5:48:14

Feign 远程调用:调用的是对方项目的 Controller,不是 Service

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Feign 远程调用:调用的是对方项目的 Controller,不是 Service

目录

一、核心结论

二、举完整例子

1)提供者服务(user-service)Controller(对外入口)

2)消费者 Feign 接口(对齐 Controller)

3)消费者业务 Service 调用 Feign

三、关键区分

四、常见误区

补充:如果是 Dubbo 就不一样


一、核心结论

  1. 服务提供方(被调用方)对外暴露接口写在Controller,接收 HTTP 请求; Service 只是内部业务实现,不对外暴露网络接口。
  2. 服务消费方(调用方,Feign 这边)Feign 定义的接口,签名必须和对方 Controller 完全对应,模拟 HTTP 请求去访问对方 Controller。
  3. Service 只存在于各自服务内部,跨服务不能直接调用 Service。

二、举完整例子

1)提供者服务(user-service)Controller(对外入口)

@RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/get/{id}") public User getById(@PathVariable Long id) { // 内部调用自己的Service return userService.getById(id); } }

2)消费者 Feign 接口(对齐 Controller)

// Feign接口 = 远程Controller的镜像 @FeignClient(name = "user-service") public interface UserFeignClient { // 路径、请求方式、参数、注解 完全和对方Controller一致 @GetMapping("/user/get/{id}") User getUser(@PathVariable Long id); }

3)消费者业务 Service 调用 Feign

@Service public class OrderService { @Autowired private UserFeignClient userFeignClient; public void createOrder(Long userId) { // 通过Feign发起HTTP,远程访问 user-service 的 UserController User user = userFeignClient.getUser(userId); } }

三、关键区分

  1. Controller:网络出入口处理 HTTP,跨服务通信唯一入口,Feign 实际访问的目标。
  2. Service:本地业务层仅本项目内部使用,没有 HTTP 能力,无法远程访问。
  3. Feign 本质是 HTTP 客户端,走网络请求,只能访问 HTTP 接口(Controller)。

四、常见误区

  • ❌ 错误:Feign 对应对方 Service Service 没有请求路径、没有 @GetMapping,无法接收网络调用;
  • ✅ 正确:Feign 是远程 Controller 的镜像接口,用来拼装 HTTP 请求。

补充:如果是 Dubbo 就不一样

Dubbo 走 RPC,直接暴露 Service 接口远程调用; Feign 基于 OpenFeign + HTTP,是 REST 风格,只能对接 Controller。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 5:12:04

Windows风扇控制终极指南:用Fan Control彻底告别噪音烦恼

Windows风扇控制终极指南:用Fan Control彻底告别噪音烦恼 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending…

作者头像 李华
网站建设 2026/7/13 16:25:34

从FIR与IIR的群延迟差异,看滤波器如何塑造信号

1. 为什么群延迟是滤波器设计的命门? 我第一次用IIR滤波器处理心电图信号时,发现QRS波群竟然出现了奇怪的变形,R波峰值位置偏移了15ms。这个教训让我明白:群延迟特性直接决定了信号的时间保真度。想象你在玩"传话游戏"&…

作者头像 李华
网站建设 2026/7/12 15:18:24

nlohmann/json:现代C++ JSON处理的终极完整指南

nlohmann/json:现代C JSON处理的终极完整指南 【免费下载链接】json JSON for Modern C 项目地址: https://gitcode.com/GitHub_Trending/js/json nlohmann/json是C开发者处理JSON数据的首选库,提供零依赖的单头文件解决方案,完美支持…

作者头像 李华
网站建设 2026/7/12 14:18:10

RSA非对称加密在登录模块的实战应用:从原理到前后端完整实现

1. 项目概述与核心价值最近在做一个后台管理系统的重构,登录模块的安全性是甲方和测试同学反复强调的重点。传统的“用户名密码”明文传输或者简单MD5一下,在现在这个网络环境下,基本等于“裸奔”。稍微有点安全意识的人,都会想到…

作者头像 李华
网站建设 2026/7/12 9:05:24

TPIC7710EVM评估板实战:从硬件解析到GUI软件驱动的电机控制芯片验证

1. 项目概述与EVM核心价值在嵌入式系统,尤其是汽车电子和工业控制这类对可靠性要求极高的领域,工程师在选定一颗核心芯片后,面临的首要挑战往往不是写代码,而是如何快速、准确地验证这颗芯片在实际电路中的表现。数据手册上的参数…

作者头像 李华
网站建设 2026/7/12 21:08:47

为什么同样叫海参,有的卖5000,有的卖1500?

前几天有个朋友跟我吐槽,说他在网上买了点海参,花了不到2000块,卖家说是大连底播海参。结果泡发出来又软又烂,一点嚼劲都没有,找客服理论,客服说"这是正常现象"。我当时就笑了。海参这东西&#…

作者头像 李华