feat: w06 类型推断增强辅助
All checks were successful
缓存序列化结构检查 / cache-schema-check (push) Has been skipped
All checks were successful
缓存序列化结构检查 / cache-schema-check (push) Has been skipped
This commit is contained in:
17
docs/实施方案.md
17
docs/实施方案.md
@@ -282,9 +282,8 @@ git diff --name-only {old-sha} {new-sha} -- '*.java'
|
||||
| W01 | `redisUtil.insert(key, JSON.toJSONString(expr), ttl)` | key 表达式、value 表达式 | ✅ |
|
||||
| W02 | `redisTemplate.opsForValue().set(key, JSON.toJSONString(expr), ...)` | 同上 | ✅ |
|
||||
| W03 | `stringRedisTemplate.opsForValue().set(key, JsonUtil.getObjectToString(expr), ...)` | 同上 | ✅ |
|
||||
| W04 | `redisTemplate.opsForValue().set(key, expr, ...)` 且 expr 非字面量 | 直写对象类型 | ✅|
|
||||
| W04 | `redisTemplate.opsForValue().set(key, expr, ...)` 且 expr 非字面量 | 直写对象类型 | ✅ |
|
||||
| W05 | `redisTemplate.opsForHash().put(key, field, expr)` | Hash 写出 value 类型 | ✅ |
|
||||
| W06 | `JSON.parseObject(cacheValue, Xxx.class)` | 辅助反向确认读取类型 | 未做 |
|
||||
|
||||
**忽略规则**(自动):
|
||||
|
||||
@@ -292,6 +291,19 @@ git diff --name-only {old-sha} {new-sha} -- '*.java'
|
||||
- 方法名含 `setIfAbsent`、`increment`、`delete`、`remove`、`expire` 等
|
||||
- key 匹配 `ignore.key_patterns` 配置(锁 / token / 登录计数等)
|
||||
|
||||
#### Step 4b:读侧类型辅助(W06,非写入模式)
|
||||
|
||||
W06 **不产生独立告警**,只扫描反序列化调用,用读到的 `Xxx.class` **补强**同文件(或同 key)写入点的 value 类型 / 根数组标记。
|
||||
|
||||
| 匹配示例 | 作用 |
|
||||
|----------|------|
|
||||
| `JSON.parseObject(raw, Xxx.class)` | 补强对象类型 |
|
||||
| `JSON.parseArray(raw, Xxx.class)` / `JsonUtil.getJsonToList` | 补强 `List<Xxx>`(rootArray) |
|
||||
| `JsonUtil.getJsonToBean(raw, Xxx.class)` | 同上 |
|
||||
| 可关联到 `redisUtil.getString(key)` / `opsForValue().get(key)` | 同时补强 key 模式 |
|
||||
|
||||
开关:`detection.read_hints_enabled`(默认 `true`)。优先级:`manual_mappings` > W06 补强 > 写侧 AST 推断。
|
||||
|
||||
#### Step 5:类型推断
|
||||
|
||||
对每个写入点的 `expr`,使用 JavaParser Symbol Solver 推断类型:
|
||||
@@ -512,6 +524,7 @@ notify:
|
||||
| 忽略规则完善 | 锁/计数器/token/字面量/setIfAbsent | ✅ |
|
||||
| 多模块性能 | 并行读文件、索引批量装载、`manual_mappings` | ✅ |
|
||||
| 企微高亮 | 删除橙 `warning` / 新增绿 `info`;位置+类型通用项 | ✅ |
|
||||
| W06 读侧辅助 | `parseObject`/`parseArray` 等补强写入 value 类型 | ✅ |
|
||||
|
||||
### Phase 3 — 运营
|
||||
|
||||
|
||||
Reference in New Issue
Block a user