gpt4 book ai didi

java - Guava 缓存不缓存

转载 作者:行者123 更新时间:2023-11-29 03:31:28 26 4
gpt4 key购买 nike

我刚开始使用 Google Guava 进行缓存,但遇到了一些问题。请看下面的代码,它很简单。以下是我的问题和代码。 1. 每当我从另一个类调用方法 testGuavaCache("6048698068"); - 它总是每次运行方法 - generateDataFromDAO();。这个方法不应该只调用一次,因为第一次它会在它不存在于内存中时缓存,下次它将从内存中提供服务。感谢您的早日回复。

public class GuavaCach{
private static Logger objLogger = Logger.getLogger(WordToPDF.class);
LoadingCache<String, String> guavaCache = CacheBuilder.newBuilder()
.maximumSize(10000)
.build(
new CacheLoader<String, String>() {
public String load(String key) throws Exception {
objLogger.debug("-----KEY IN LOAD BEFORE calling generateDataFromDAO------->" + key + "<-------");
String out = generateDataFromDAO();
objLogger.debug("-----out after calling generateDataFromDAO------->" + out + "<-------");
return out;
}
});

public String testGuavaCache(String key) throws IOException {
String dataFromDAO = null;
objLogger.debug("-----Entering testGuavaCache-----");
try {
dataFromDAO = guavaCache.get(key);
} catch (ExecutionException e) {
e.printStackTrace();
}
return dataFromDAO;
}

public String generateDataFromDAO() throws PreviewErrorMsg, IOException {
objLogger.debug("-----Entering generateDataFromDAO-----");
String data = "GeneratedDataFromDAO";
return data;
}
}

在另一个类(class) - 我在上面打电话:

GuavaCach gCache = new GuavaCach(); gCache..testGuavaCache("6048698068");

最佳答案

您每次提出问题时都会创建一个全新的缓存,而(空的)新缓存中没有任何答案。您需要创建一个缓存,保留它,并一遍又一遍地问它同样的问题以获得好处。你没有发布太多你是如何使用它的,但你应该只调用 new GuavaCach() 在你的其他代码中,然后调用 g.testGuavaCache(key) 反复。

关于java - Guava 缓存不缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18008914/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com