Logger :
目的:使用指定的类XXX初始化日志对象,方便在日志输出的时候,可以打印出日志信息所属的类。
private static Logger logger = LoggerFactory.getLogger(TokenCache.class);
logger.error("logcalCache get error",e);
——————————————————————————————————————————————————————————————————————————————
输出 TokenCache:logcalCache get error
CatchBuilder
https://www.jianshu.com/p/c8532617773e
private static LoadingCache<String,String> localCache =CacheBuilder.newBuilder().initialCapacity(1000).maximumSize(1000).expireAfterAccess(12, TimeUnit.HOURS).build(new CacheLoader<String, String>() {
@Override
// 默认的数据加载实现,当调用get取值时,如果key没有对应的值,就调用这个方法进行加载
public String load(String s) throws Exception {
return "null";
}
});
public static void setKey(String key,String value){
localCache.put(key,value);
}
定时回收(Timed Eviction)
CacheBuilder提供两种定时回收的方法:
expireAfterAccess(long, TimeUnit):缓存项在给定时间内没有被读/写访问,则回收。请注意这种缓存的回收顺序和基于大小回收一样。
expireAfterWrite(long, TimeUnit):缓存项在给定时间内没有被写访问(创建或覆盖),则回收。如果认为缓存数据总是在固定时候后变得陈旧不可用,这种回收方式是可取的。