Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 番石榴缓存不缓存_Java_Caching_Guava_In Memory - Fatal编程技术网

Java 番石榴缓存不缓存

Java 番石榴缓存不缓存,java,caching,guava,in-memory,Java,Caching,Guava,In Memory,我对谷歌番石榴的缓存还不熟悉,但有一些问题。请看下面的代码,它很简单。以下是我的问题和代码。1.每当我调用methodtestGuavaCache(“6048698068”)来自另一个类-它总是每次运行方法-generateDataFromDAO()。这个方法不应该只被调用一次,因为它第一次缓存时它不在内存中,下次它将从内存中服务。感谢您早日回复 public class GuavaCach{ private static Logger objLogger = Logger.getLog

我对谷歌番石榴的缓存还不熟悉,但有一些问题。请看下面的代码,它很简单。以下是我的问题和代码。1.每当我调用method
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;
    }
}
公共级瓜瓦切赫{
私有静态记录器objLogger=Logger.getLogger(WordToPDF.class);
LoadingCache guavaCache=CacheBuilder.newBuilder()
.最大尺寸(10000)
.建造(
新缓存加载程序(){
公共字符串加载(字符串键)引发异常{

debug(“----在调用generateDataFromDAO之前输入LOAD-->”+KEY+“+out+”您每次提出问题时都要创建一个完整的新缓存,并且(空)新缓存中没有任何答案。您需要创建一个缓存,保留它,并反复向它提出相同的问题,以获得好处。您没有发布太多关于如何使用它的信息,但您应该只在其他代码中调用
new GuavaCach()
,然后调用
g.testGuavaCache(key)
重复。

每次提出问题时,您都在创建一个完整的新缓存,并且(空)新缓存中没有任何答案。您需要创建一个缓存,保留它,并反复向它提出相同的问题,以获得好处。您没有发布太多关于如何使用它的信息,但您应该只在其他代码中调用
new GuavaCach()
,然后调用
g.testGuavaCache(key)
重复。

您没有显示调用这些方法或输出的代码。解释问题的两个调用可能有所不同。Guavach gCache=new Guavach();gCache..testGuavaCache(“6048698068”);是否每次都调用
new Guavach()
?是-调用new Guavach())每次都没有显示调用这些方法或输出的代码。这两个调用可能会有一些不同,这可以解释问题。Guavach gCache=new guavacch();gCache..testGuavaCache(“6048698068”);是否每次都调用
new guavacch()
?是-调用new guavacch()每次或将私有
guavaCache
成员更改为静态。或将私有
guavaCache
成员更改为静态。