OpenFeign 将 Java 接口调用转换为实际的 HTTP 请求,其核心原理可以概括为:动态代理 + 注解解析(契约) + 模板构建 + HTTP 客户端发送。 整个过程可以分为两大阶段:初始化(代理生成)阶段 和 方法调用(执行)阶段。 以下是详细的步骤拆解: --- 第一阶段:初始化阶段(生成代理对象) 当你启动 Spring Boot 应用并扫描到 接口时,OpenFeign 会在后台做以下事情: 1. 解析接口元数据(Contract 契约解析) OpenFeign 需要读懂你的接口。它通过 Contract(契约) 组件来解析接口上的注解。 在 Spring Cloud 环境下,默认使用的是 。 它会解析类和方法上的 、、、、 等注解。 解析结果: 每一个接口方法都会被解析并封装成一个 (方法元数据) 对象。这个对象包含了该方法的 HTTP 动词(GET/POST)、请求路径的模板、参数名、请求头信息等。 2. 生成动态代理对象 OpenFeign 使用 JDK 动态代理,为你的接口生成一个代理对象,并注入到 Spring 容器中。 这个代理对象内部持有一个 (通...