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;
}
}
別のクラスで-私は上記を呼び出しています:
GuavaCach gCache = new GuavaCach(); gCache..testGuavaCache("6048698068");