1.注入需要调用的Service以及同类型的静态变量
@Component
public class StringUtil {
private static RedisService redisService;
public void setRedisService(RedisService redisService) {
StringUtil.redisService = redisService;
}
public static void deleteToken(String pageToken) {
String key = genKey();
if (StrExUtil.isNotBlank(key)) {
// 从redis集合中删除
redisService.setRemove(CacheNamesapce.CSRF_TOKEN, key, pageToken);
}
}
}
2.注解@PostConstruct
@Component
public class StringUtil {
private static StringUtil util;
@Autowired
private RedisService redisService;
@PostConstruct
public void init() {
util = this;
util.redisService = this.redisService;
}
public static void deleteToken(String pageToken) {
String key = genKey();
if (StrExUtil.isNotBlank(key)) {
// 从redis集合中删除
util.redisService.setRemove(CacheNamesapce.CSRF_TOKEN, key, pageToken);
}
}
}
3.SpringBeanFactory
@Slf4j
public class StringUtil {
public static boolean isNotEmpty(String str) {
return str != null && !"".equals(str.trim());
}
public static boolean isEmpty(String str) {
return str == null || "".equals(str.trim());
}
private static final Random RANDOM = new SecureRandom();
public static String getCode(int length) {
String alphabetsInUpperCase = "ABCDEF";
String numbers = "0123456789";
// create a super set of all characters
String allCharacters = alphabetsInUpperCase + numbers;
// initialize a string to hold result
StringBuffer randomString = new StringBuffer();
// loop for 10 times
for (int i = 0; i < length; i++) {
// generate a random number between 0 and length of all characters
// int randomIndex = (int)(Math.random() * allCharacters.length());
int randomIndex = RANDOM.nextInt(allCharacters.length());
// retrieve character at index and add it to result
randomString.append(allCharacters.charAt(randomIndex));
}
StringRedisTemplate redisTemplate = SpringBeanFactory.getBean(StringRedisTemplate.class);
if(redisTemplate.hasKey("resource:code:"+randomString)){
log.info("{}已存在 重新生成","resource:code:"+randomString);
getCode(length);
}
redisTemplate.opsForValue().set("resource:code:"+randomString,randomString.toString());
return randomString.toString();
}
}