项目的需求是注册时验证短信验证码。因为验证码的时效性不想存到数据库里,就用static静态变量替代了下。(项目比较简单,正常的话还是用redis比较好)
1、工具类
import lombok.Data;
import org.joda.time.DateTime;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* 缓存验证码
*/
public class CacheUtil {
@Data
class CodeEntity {
//验证码
private String code;
//过期时间
private Date expireTime;
}
/**
* 存储缓存数据,key为电话号码,value为Code
*/
public static Map<String, CodeEntity> map;
private static final Integer MINUTE = 5;
/**
* 添加单个数据
*/
public synchronized void addCache(String key, String code) {
if (map == null) {
map = new HashMap<>();
}
CodeEntity codeEntity = new CodeEntity();
codeEntity.setCode(code);
DateTime dateTime = DateTime.now().plusMinutes(MINUTE);
codeEntity.setE