34 Star 316 Fork 163

土豆 / eladmin-plus

 / 详情

关于redisConfig 的自定义ID生成器

待办的
创建于  
2022-08-20 20:39

public KeyGenerator keyGenerator() {
return (target, method, params) -> {
Map<String,Object> container = new HashMap<>(3);
Class<?> targetClassClass = target.getClass();
// 类地址
container.put("class",targetClassClass.toGenericString());
// 方法名称
container.put("methodName",method.getName());
// 包名称
container.put("package",targetClassClass.getPackage());
// 参数列表
for (int i = 0; i < params.length; i++) {
container.put(String.valueOf(i),params[i]);
}
// 转为JSON字符串
String jsonString = JSON.toJSONString(container);
// 做SHA256 Hash计算,得到一个SHA256摘要作为Key
return DigestUtils.sha256Hex(jsonString);
};
}

对装配好的Map的JsonString 做Hash是出于什么样的考虑呢? 这不会导致缓存key 的可读性变差吗, 另外Redis Utils 的get 方法也没有做参数转换 这样能获取到这种ID吗?

评论 (0)

DR490N 创建了任务
DR490N 修改了描述
DR490N 修改了描述
DR490N 修改了描述
DR490N 修改了标题
展开全部操作日志

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
Java
1
https://gitee.com/rayson517/eladmin-plus.git
git@gitee.com:rayson517/eladmin-plus.git
rayson517
eladmin-plus
eladmin-plus

搜索帮助