目录
前言:
实现示例:
public class ThirdPartyApi {
public static String getData(String param) {
// 第三方接口调用代码
return "data from third party api";
}
}
public class CacheUtil {
private static final long CACHE_TIME = 60 * 60 * 1000; // 缓存时间为1个小时
private static Map<String, CacheData> cacheMap = new ConcurrentHashMap<>();
public static String getDataFromCache(String param) {
CacheData cacheData = cacheMap.get(param);
if (cacheData != null && System.currentTimeMillis() - cacheData.getTimestamp() <= CACHE_TIME) {
// 缓存未过期,返回缓存数据
return cacheData.getData();
} else {
// 缓存已过期或不存在,查询第三方接口并更新缓存
String data = ThirdPartyApi.getData(param);
cacheMap.put(param, new CacheData(data, System.currentTimeMillis()));
return data;
}
}
private static class CacheData {
private String data;
private long timestamp;
public CacheData(String data, long timestamp) {
this.data = data;
this.timestamp = timestamp;
}
public String getData() {
return data;
}
public long getTimestamp() {
return timestamp;
}
}
}
public class Main {
public static void main(String[] args) {
String param = "test";
String data = CacheUtil.getDataFromCache(param);
System.out.println(data);
}
}