Guava Cache 创建
guava是谷歌几个java核心类库的集合,包括集合、缓存、原生类型、并发、常用注解、基本字符串操作和I/O等等。
?
这篇文章主要说明下其中缓存部分的用法。这文章主要是我结合wiki中内容学习的一个小结:
?
wiki的地址如下,但是需要fan qiang访问:?https://code.google.com/p/guava-libraries/wiki/CachesExplained
?
基本上可以通过两种方式来创建cache:
?
cacheLoader
?
callable callback
?
通过这两种方法创建的cache,和通常用map来缓存的做法比,不同在于,这两种方法都实现了一种逻辑——从缓存中取key X的值,如果该值已经缓存过了,则返回缓存中的值,如果没有缓存过,可以通过某个方法来获取这个值。
?
但不同的在于cacheloader的定义比较宽泛,是针对整个cache定义的,可以认为是统一的根据key值load value的方法。
?
而callable的方式较为灵活,允许你在get的时候指定。
?
下面是两种方法的例子:
?
首先是基于cacheloader的方法
?
?其次是基于实现callable的方法:
?