Learning Focus

学习目标

把每节内容压缩成可以直接执行的工程判断,阅读时优先看目标,再看代码。

Focus 01

Feign 把远程 HTTP 调用抽象成 Java 接口。

Focus 02

接口契约要稳定,返回结构应有明确版本策略。

Focus 03

调用链路要设置超时、重试和错误兜底,避免线程被长时间占用。

理解方式

先把概念放进完整系统中理解,再用最小代码或配置确认它如何工作。

  • 它解决什么问题。
  • 它依赖什么组件。
  • 它失败时怎么处理。

示例

代码示例突出最小可理解片段,用来连接概念和工程实践。

Feign 客户端
@FeignClient(name = "user-service")
public interface UserClient {
    @GetMapping("/users/{id}")
    UserDto findById(@PathVariable Long id);
}

常见误区

  • 只记配置项,不理解它在调用链路中的位置。
  • 把示例代码直接搬进生产环境,没有补充超时、校验、日志和回退策略。
  • 学习神经网络时只看框架 API,不检查输入输出形状和数据分布。

练习

说明 Feign 调用失败时,业务层应该返回错误、默认值还是降级结果。