/**
* <pre>
* 一种自定义生成key的方法 md5后
* 注解 CacheAnnotation 就是使用这种方法参数key
* </pre>
*
* @return after md5 --> prefix(args1,args2,args3)
*/
public static String md5CacheKey(String prefix, Object... args) {
return MD5Utils.md5(cacheKey(prefix, args));
}
/**
* 一种自定义生成key的方法 未md5
*
* @return prefix(args1,args2,args3)
*/
public static String cacheKey(String prefix, Object... args) {
StringBuilder sb = new StringBuilder(prefix + "(");
if (args.length > 0) {
for (Object arg : args) {
if (arg == null) {
sb.append(null + ",");
} else if (arg instanceof Map) {
TreeMap treeMap = new TreeMap();
treeMap.putAll((Map) arg);
sb.append(treeMap + ",");
} else {
sb.append(arg + ",");
}
}
sb.deleteCharAt(sb.length() - 1);
}
return sb.append(")").toString();
}