过期时间工具类:
public class ExpireDataUtil {
private static Map<String,ExpireData> map = new HashMap();
public static void add(String key,String value,long expireSeconds){
ExpireData expireData = new ExpireData(key,value,expireSeconds);
map.put(key,expireData);
}
public static String get(String key){
ExpireData expireData = map.get(key);
if(expireData == null){
return null;
}
long nowTime = System.currentTimeMillis() / 1000;
if(nowTime < expireData.getEndTime()){
return expireData.getValue();
}else{
return null;
}
}
@Data
static class ExpireData{
private String key;
private String value;
private long expireSeconds;
private long startTime;
private long endTime;
public ExpireData(String key, String value, Long expireSeconds) {
this.key = key;
this.value = value;
this.expireSeconds = expireSeconds;
this.startTime = System.currentTimeMillis() / 1000;
this.endTime = startTime + expireSeconds;
}
}
}
在代码中的使用:
public static String getAccessToken() {
// 官网获取的 API Key 更新为你注册的
String clientId = "********";
// 官网获取的 Secret Key 更新为你注册的
String clientSecret = "***********";
String token = ExpireDataUtil.get("baiduToken");
if(null == token){
String tempToken = getAccessToken(clientId, clientSecret);
ExpireDataUtil.add("baiduToken",tempToken,2591000);
return tempToken;
}else{
return ExpireDataUtil.get("baiduToken");
}
}