package com.taobao.ju.my.common.biz.manager.impl;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
public class LoadingCacheDemo {
public static void main(String[] args) throws ExecutionException {
//方法一
//创建本地缓存,当本地缓存不命中时,调用load方法,返回结果,再缓存结果。
LoadingCache loadingCache = CacheBuilder.newBuilder().expireAfterWrite(10, TimeUnit.SECONDS).maximumSize(10000).build(new CacheLoader() {
@Override
public String load(String key) throws Exception {
return getString(key);
}
});
loadingCache.get("test");
loadingCache.get("test2");
//方法二
//创建缓存对像
Cache cache = CacheBuilder.newBuilder().expireAfterWrite(10, TimeUnit.SECONDS).maximumSize(10000).build();
//调用缓存中的get方法,当缓存命中时直接返回结果,当不命中时,通过给定的Callable类call方法 返回结果,再缓存。这个方法
//到更灵活,可以用一个cache对象缓存多种不同的数据,只要用不同的Callable对象就行。
cache.get("111", new Callable() {
@Override
public String call() throws Exception {
System.out.println("经过 call()");
return "value.";
}
});
cache.get("222", new Callable() {
@Override
public String call() throws Exception {
System.out.println("经过 call()");
return "value.";
}
});
}
public static String getString(String key) {
System.out.println("经过 getString()");
return key + "--Test";
}
}
相关推荐
com.google.common.annotations com.google.common.base com.google.common.collect com.google.common.io com.google.common.net com.google.common.primitives com.google.common.util.concurrent 源码...
此外,Guava的`com.google.common`包不仅仅局限于集合,还有`cache`模块用于缓存,`primitives`模块处理基本类型,`functional`模块提供函数式编程的支持,等等。这些工具共同构成了一个强大而全面的Java开发工具箱...
在Java编程领域,`com.google.common.collect`是一个非常重要的包,它是Google的Guava库的一部分。Guava是一个广泛使用的开源库,提供了许多实用的集合框架、缓存、原生类型支持、并发工具、字符串处理等功能。`...
com.google.common.collect.Lists的jar包
`com.google.common.base.Preconditions`是Google Common库中的一个关键类,它提供了多种静态方法,用于在程序执行前检查条件是否满足,以此来预防运行时异常。这些方法在编写健壮的代码时非常有用,因为它们可以在...
Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] ...
com.google.common google jar包
其中,`com.google.common.base.Preconditions`是这个库中一个非常重要的模块,主要用于在代码中进行参数检查,确保程序的健壮性。 `Preconditions` 类提供了一系列静态方法,用于在执行方法或构造函数时验证输入...
Files contained in ...com.google.zxing.common.detector.MonochromeRectangleDetector.class com.google.zxing.common.detector.WhiteRectangleDetector.class com.google.zxing.common.reedsolomon.GF256.class ...
对于生成二维码,可以使用`com.google.zxing.common.BitMatrix`和`com.google.zxing.qrcode.QRCodeWriter`类,它们允许你指定二维码的内容、纠错级别和其他参数。 下面是一个简单的示例代码,展示了如何使用ZXing库...
`Common`通常包含了一些通用的辅助函数和类,比如字符串处理、日期时间操作、异常处理等,旨在提高代码复用性和减少重复编写基础代码的工作。而`DBUtility`很可能是数据库访问的封装,提供了对数据库操作的简便接口...
然后,通过`com.google.zxing.common.BufferedImageLuminanceSource`类将图像转换为ZXing可以理解的格式。接下来,利用`com.google.zxing.MultiFormatReader`类进行解码,它可以识别多种条码格式。如果成功,`decode...
`com.google.common.cache.Cache`接口提供了构建本地缓存的能力,它可以帮助减少不必要的计算或网络请求,提升系统性能。通过设置过期策略、容量限制等,我们可以灵活地管理缓存资源。 在RocketMQ的过滤器中,`...
例如,可以使用`refreshAfterWrite`方法设置每隔一定时间自动刷新缓存: ```java graphs.refreshAfterWrite(5, TimeUnit.MINUTES); // 每5分钟刷新一次 ``` 4. **缓存监听** 通过`RemovalListener`接口,可以监听...
只需放入pulign中替换原来文件就行,然后就可以进行破解,打开软件就可以了
com.google.common中的jar包
com.google.common.cache:缓存工具包,非常简单易用且功能强大的JVM内缓存。 com.google.common.collect:带泛型的集合接口扩展和实现,以及工具类,这里你会发现很多好玩的集合。 ...