Skip to content

ADR-0005: 多账户类型 Controller 共享逻辑用组合,不用中间继承

  • 日期:2025(补记) 状态:✅ 生效

背景

同一资源常要给 merchant / channel / platform 各出一套 Controller,逻辑高度相似,曾尝试抽中间抽象 Controller 让三者继承。

决策

禁止BasicQueryController/BasicCurdController 与业务 Controller 之间插入共享抽象类;共享逻辑抽成 @Component,各 Controller 组合调用。

理由

基类用单层泛型反射解析实体类型,插入中间继承层后反射拿到的是错误的类型参数,运行时 ClassCastException。

影响

  • 见到"三个端的 Controller 代码重复"时,正确动作是抽 Component,不是抽父类