框架自动注入XyGeneratorUtils工具类,提供静态方法产生指定类型的key

�基于统一的方式生产cacheKey,lockKey,用户tokenKey

cacheKey格式:【applicationId:cache:group:value

lockKey格式:【applicationId:lock:group:value

userTokenKey:【access_token:userId

  1. /**
  2. * cache key,lock key tools
  3. *
  4. * @author licw
  5. */
  6. public class GeneratorManager {
  7. @Value("${spring.application.id}")
  8. private Integer applicationId;
  9. /**
  10. * 获取缓存key
  11. *
  12. * @param group 业务类型
  13. * @return 缓存key
  14. */
  15. public String generatorCacheKey(XyEnum group) {
  16. StringBuilder paramStr = new StringBuilder();
  17. paramStr.append(this.applicationId);
  18. paramStr.append(":");
  19. paramStr.append("cache");
  20. paramStr.append(":");
  21. paramStr.append(group.getValue());
  22. return paramStr.toString();
  23. }
  24. /**
  25. * 获取缓存key
  26. *
  27. * @param group 业务类型
  28. * @param key 缓存业务关键点
  29. * @return 缓存key
  30. */
  31. public String generatorCacheKey(XyEnum group, String key) {
  32. StringBuilder paramStr = new StringBuilder();
  33. paramStr.append(this.applicationId);
  34. paramStr.append(":");
  35. paramStr.append("cache");
  36. paramStr.append(":");
  37. paramStr.append(group.getValue());
  38. paramStr.append(":");
  39. paramStr.append(key);
  40. return paramStr.toString();
  41. }
  42. /**
  43. * 获取缓存key
  44. *
  45. * @param group 业务类型
  46. * @param keys 缓存业务关键点
  47. * @return 缓存key
  48. */
  49. public String generatorCacheKey(XyEnum group, String... keys) {
  50. StringBuilder paramStr = new StringBuilder();
  51. paramStr.append(this.applicationId);
  52. paramStr.append(":");
  53. paramStr.append("cache");
  54. paramStr.append(":");
  55. paramStr.append(group.getValue());
  56. return getString(paramStr, keys);
  57. }
  58. private String getString(StringBuilder paramStr, String[] keys) {
  59. if (keys == null || keys.length == 0) {
  60. return paramStr.toString();
  61. }
  62. for (int i = 0; i < keys.length; i++) {
  63. paramStr.append(":");
  64. paramStr.append(keys[i]);
  65. }
  66. return paramStr.toString();
  67. }
  68. /**
  69. * 获取分布锁key
  70. *
  71. * @param group 业务类型
  72. * @return 分布锁key
  73. */
  74. public String generatorLockKey(String group) {
  75. StringBuilder paramStr = new StringBuilder();
  76. paramStr.append(this.applicationId);
  77. paramStr.append(":");
  78. paramStr.append("lock");
  79. paramStr.append(":");
  80. paramStr.append(group);
  81. return paramStr.toString();
  82. }
  83. /**
  84. * 获取分布锁key
  85. *
  86. * @param group 业务类型
  87. * @param key 锁业务关键点
  88. * @return 分布锁key
  89. */
  90. public String generatorLockKey(String group, String key) {
  91. StringBuilder paramStr = new StringBuilder();
  92. paramStr.append(this.applicationId);
  93. paramStr.append(":");
  94. paramStr.append("lock");
  95. paramStr.append(":");
  96. paramStr.append(group);
  97. paramStr.append(":");
  98. paramStr.append(key);
  99. return paramStr.toString();
  100. }
  101. /**
  102. * 获取分布锁key
  103. *
  104. * @param group 业务类型
  105. * @param keys 锁业务关键点
  106. * @return 分布锁key
  107. */
  108. public String generatorLockKey(String group, String... keys) {
  109. StringBuilder paramStr = new StringBuilder();
  110. paramStr.append(this.applicationId);
  111. paramStr.append(":");
  112. paramStr.append("lock");
  113. paramStr.append(":");
  114. paramStr.append(group);
  115. return getString(paramStr, keys);
  116. }
  117. /**
  118. * 获取登陆token缓存key
  119. *
  120. * @param userId 用户Id
  121. * @return token缓存key
  122. */
  123. public String generatorTokenKey(String userId) {
  124. StringBuilder paramStr = new StringBuilder();
  125. paramStr.append("access_token");
  126. paramStr.append(":");
  127. paramStr.append(userId);
  128. return paramStr.toString();
  129. }
  130. }