Learning Focus
学习目标
把每节内容压缩成可以直接执行的工程判断,阅读时优先看目标,再看代码。
Focus 01
Feign 把远程 HTTP 调用抽象成 Java 接口。
Focus 02
接口契约要稳定,返回结构应有明确版本策略。
Focus 03
调用链路要设置超时、重试和错误兜底,避免线程被长时间占用。
理解方式
先把概念放进完整系统中理解,再用最小代码或配置确认它如何工作。
- 它解决什么问题。
- 它依赖什么组件。
- 它失败时怎么处理。
示例
代码示例突出最小可理解片段,用来连接概念和工程实践。
@FeignClient(name = "user-service")
public interface UserClient {
@GetMapping("/users/{id}")
UserDto findById(@PathVariable Long id);
}
常见误区
- 只记配置项,不理解它在调用链路中的位置。
- 把示例代码直接搬进生产环境,没有补充超时、校验、日志和回退策略。
- 学习神经网络时只看框架 API,不检查输入输出形状和数据分布。
练习
说明 Feign 调用失败时,业务层应该返回错误、默认值还是降级结果。