14 文件一把改的成本:
分批 4 批的好处:
| 批次 | 文件 | 排序理由 |
|---|---|---|
| 1 | DDImplClient / DDImplService / DDImplClient_Attendance |
主流量入口,先打通主路径验证迁移可行性 |
| 2 | DDImplClient_Contacts / _Group / _Notice |
通讯通知,高频但相对独立 |
| 3 | DDImplClient_Personnel / _Report / _Schedule |
人事日历,与考勤强关联 |
| 4 | DDImplClient_Dedicated / _Event / _Extension / _Storage / _Workflow |
长尾,引用方少,最后清扫 |
Spring 默认 Bean 名是类名首字母小写。改名后:
| 旧 Bean 名 | 新 Bean 名 |
|---|---|
dDImplClient |
dDClientImpl |
dDImplClient_Attendance |
dDClient_AttendanceImpl |
| ... | ... |
调用方影响:
@Autowired DDClient ddClient(by 接口类型)— 不受影响,Spring 仍能找到唯一实现@Autowired @Qualifier("dDImplClient") DDClient client(by-name)— 受影响,必须改@Resource(name = "dDImplClient_Attendance") — 受影响,必须改每批 R4 grep 时必须加扫 @Qualifier @Resource(name= 字面量。
@Component("dDImplClient_Attendance") 别名兼容可以给新类标 @Component("dDImplClient_Attendance") 保留旧 Bean 名,让调用方零修改。拒绝,原因:
/Users/malk/server/cur/mjava-guangming/:含 mjava-guangming/mjava-shunfeng 模块 — 必扫grep 命令模板(每批执行):
# 该批每个旧类名扫:
grep -rE "(import\s+.+\.DDImplClient_Attendance|DDImplClient_Attendance\.class|@Qualifier\(\"dDImplClient_Attendance\"|@Resource\(name\s*=\s*\"dDImplClient_Attendance)" \
--include="*.java" \
/Users/malk/server/cur/mjava-ai/ \
/Users/malk/server/cur/mjava-guangming/ \
{其他客户仓}
mvn -pl mjava -am clean compile(基座)mvn -pl mjava-mcli,mjava-pro,mjava-com -am clean compile(子项目)DDClient 接口名 — 拒绝。R5 只约束 Impl 命名;接口名变化触发跨仓所有 import 变化,超出本 change 范围