|
5 | 5 | import java.util.concurrent.Callable;
|
6 | 6 | import java.util.concurrent.ConcurrentMap;
|
7 | 7 | import java.util.concurrent.TimeUnit;
|
8 |
| -import java.util.function.Function; |
9 | 8 | import java.util.stream.Collectors;
|
10 | 9 |
|
11 | 10 | import com.alibaba.fastjson2.JSON;
|
|
21 | 20 | @NoArgsConstructor
|
22 | 21 | public class SimpleGuavaCache<K, V> {
|
23 | 22 |
|
| 23 | + private static final Integer EXPRESS_TIME = 2; |
| 24 | + /** LRU缓存的最大个数 */ |
| 25 | + private static final Long MAXIMUM_SIZE = 200L; |
24 | 26 | private LoadingCache<K, V> cache;
|
25 |
| - |
26 | 27 | private RemovalListener<K, V> listener;
|
27 |
| - |
28 | 28 | private CacheLoader<K, V> loader;
|
29 | 29 |
|
30 |
| - private Integer expressTime = 2; |
31 |
| - |
32 |
| - /** LRU缓存的最大个数 */ |
33 |
| - private Long maximumSize = 200L; |
34 |
| - |
35 | 30 | public SimpleGuavaCache(CacheLoader<K, V> loader) {
|
36 | 31 | this(loader, new DefaultRemovalListener<>());
|
37 | 32 | this.loader = loader;
|
38 | 33 | }
|
39 | 34 |
|
40 | 35 | public SimpleGuavaCache(CacheLoader<K, V> loader, RemovalListener<K, V> listener) {
|
41 | 36 | this.cache = CacheBuilder.newBuilder()
|
42 |
| - .maximumSize(maximumSize) |
| 37 | + .maximumSize(MAXIMUM_SIZE) |
| 38 | + .expireAfterWrite(EXPRESS_TIME, TimeUnit.MINUTES) |
| 39 | + .removalListener(listener) |
| 40 | + .build(loader); |
| 41 | + } |
| 42 | + |
| 43 | + public SimpleGuavaCache(RemovalListener<K, V> listener, CacheLoader<K, V> loader, Integer expressTime, |
| 44 | + Long MAXIMUM_SIZE) { |
| 45 | + this.cache = CacheBuilder.newBuilder() |
| 46 | + .maximumSize(MAXIMUM_SIZE) |
43 | 47 | .expireAfterWrite(expressTime, TimeUnit.MINUTES)
|
44 | 48 | .removalListener(listener)
|
45 | 49 | .build(loader);
|
46 | 50 | }
|
47 | 51 |
|
48 | 52 | public void refresh() {
|
49 | 53 | this.cache = CacheBuilder.newBuilder()
|
50 |
| - .maximumSize(maximumSize) |
51 |
| - .expireAfterWrite(expressTime, TimeUnit.MINUTES) |
| 54 | + .maximumSize(MAXIMUM_SIZE) |
| 55 | + .expireAfterWrite(EXPRESS_TIME, TimeUnit.MINUTES) |
52 | 56 | .removalListener(listener)
|
53 | 57 | .build(this.loader);
|
54 | 58 | }
|
|
0 commit comments