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);
// ---
}
