框架自动注入XyGeneratorUtils工具类,提供静态方法产生指定类型的key
�基于统一的方式生产cacheKey,lockKey,用户tokenKey
cacheKey格式:【applicationId:cache:group:value】
lockKey格式:【applicationId:lock:group:value】
userTokenKey:【access_token:userId】
/*** cache key,lock key tools** @author licw*/public class GeneratorManager {@Value("${spring.application.id}")private Integer applicationId;/*** 获取缓存key** @param group 业务类型* @return 缓存key*/public String generatorCacheKey(XyEnum group) {StringBuilder paramStr = new StringBuilder();paramStr.append(this.applicationId);paramStr.append(":");paramStr.append("cache");paramStr.append(":");paramStr.append(group.getValue());return paramStr.toString();}/*** 获取缓存key** @param group 业务类型* @param key 缓存业务关键点* @return 缓存key*/public String generatorCacheKey(XyEnum group, String key) {StringBuilder paramStr = new StringBuilder();paramStr.append(this.applicationId);paramStr.append(":");paramStr.append("cache");paramStr.append(":");paramStr.append(group.getValue());paramStr.append(":");paramStr.append(key);return paramStr.toString();}/*** 获取缓存key** @param group 业务类型* @param keys 缓存业务关键点* @return 缓存key*/public String generatorCacheKey(XyEnum group, String... keys) {StringBuilder paramStr = new StringBuilder();paramStr.append(this.applicationId);paramStr.append(":");paramStr.append("cache");paramStr.append(":");paramStr.append(group.getValue());return getString(paramStr, keys);}private String getString(StringBuilder paramStr, String[] keys) {if (keys == null || keys.length == 0) {return paramStr.toString();}for (int i = 0; i < keys.length; i++) {paramStr.append(":");paramStr.append(keys[i]);}return paramStr.toString();}/*** 获取分布锁key** @param group 业务类型* @return 分布锁key*/public String generatorLockKey(String group) {StringBuilder paramStr = new StringBuilder();paramStr.append(this.applicationId);paramStr.append(":");paramStr.append("lock");paramStr.append(":");paramStr.append(group);return paramStr.toString();}/*** 获取分布锁key** @param group 业务类型* @param key 锁业务关键点* @return 分布锁key*/public String generatorLockKey(String group, String key) {StringBuilder paramStr = new StringBuilder();paramStr.append(this.applicationId);paramStr.append(":");paramStr.append("lock");paramStr.append(":");paramStr.append(group);paramStr.append(":");paramStr.append(key);return paramStr.toString();}/*** 获取分布锁key** @param group 业务类型* @param keys 锁业务关键点* @return 分布锁key*/public String generatorLockKey(String group, String... keys) {StringBuilder paramStr = new StringBuilder();paramStr.append(this.applicationId);paramStr.append(":");paramStr.append("lock");paramStr.append(":");paramStr.append(group);return getString(paramStr, keys);}/*** 获取登陆token缓存key** @param userId 用户Id* @return token缓存key*/public String generatorTokenKey(String userId) {StringBuilder paramStr = new StringBuilder();paramStr.append("access_token");paramStr.append(":");paramStr.append(userId);return paramStr.toString();}}
