我是新來的谷歌番石榴緩存,但有一些問題。請看下面的代碼它很簡單。以下是我的問題和代碼。 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;
}
}
在另一類 - 我上述主叫:
GuavaCach gCache =新GuavaCach(); gCache..testGuavaCache( 「6048698068」);
您沒有顯示調用這些方法或輸出的代碼。這兩次電話會有一些差異來解釋問題。 – chrylis
GuavaCach gCache = new GuavaCach(); gCache..testGuavaCache( 「6048698068」); – user2565431
你是否每次都調用'new GuavaCach()'? – chrylis