Guava Cache,网上介绍很多,我就不赘述了。
分享一篇好的文章:
Guava Cache内存缓存使用实践-定时异步刷新及简单抽象封装
在原作者基础上,我做了一些修改:
public void loadValueWhenStarted(){
}
该方法不再定义为抽象方法。没必要抽象,当有使用场景的时候子类重载该方法不就完了嘛。
作者也没有给出使用示例,这里提供一个我的使用示例:
@Log4j2
public class DataIdCache extends BaseGuavaCache<Long, String> {
@Override
protected String getValueWhenExpired(Long id) throws Exception {
// do sth
return dataDAO.getDataById(id);
}
}
使用起来也非常简单:
private static DataIdCache dataIdCache = new DataIdCache();
public void fun(){
// ---
dataIdCache.getValue(id);
// ---
}