@Cacheable 注释和 EhCache - 缓存创建,可以调试配置,但不能缓存

问题描述

Spring 版本:4.3.13.RELEASE

EhCache 版本:3.1

大家好,我目前遇到了 EhCache 缓存问题。我能够看到缓存是使用我要配置它的属性构建的,但是我没有看到任何缓存的操作。 (名称/类型更改为模糊用例)

@Cacheable(value = "cacheName",cacheManager = "some.local.cacheManager")
    public Object findItemInMongo(String param1,String param2,String param3,String param4,Enum param5) {
    org.springframework.cache.Cache c = this.cacheManager.getCache("cacheName");
    Long size = 0L;
    Long miss = 0L;
    if (c.getNativeCache() instanceof net.sf.ehcache.Ehcache) {
        net.sf.ehcache.Ehcache ehCache = (net.sf.ehcache.Ehcache) c.getNativeCache();
        size = ehCache.getStatistics().cacheGetoperation().count().value();
        miss = ehCache.getStatistics().cacheMissCount();
    }
    ...
    kibanaLogging.submitToKibana(...);
}

如您所见,我可以成功地从管理器手动获取缓存、投射并检查统计信息。在重复运行此事务时,我总是在调试中输入它,并查看推送的 kibana 日志。我有一个不同的 EhCache 实现在这个服务中工作,遵循类似的方法,并且可以看到块永远不会在调试中输入,kibana 日志也不会提交。我有点不明白为什么这个签名没有被缓存。

方法也未从类内部调用

我可以在调试中反省我的缓存配置:

[ name = cacheName status = STATUS_ALIVE 
    eternal = false overflowTodisk = false maxEntriesLocalHeap = 100 
    maxEntriesLocaldisk = 0 memoryStoreevictionPolicy = LRU 
    timetoLiveSeconds = 3000 timetoIdleSeconds = 0 persistence = none 
    diskExpiryThreadIntervalSeconds = 120 cacheEventListeners: ; 
    orderedCacheEventListeners:  maxBytesLocalHeap = 0 
    overflowToOffheap = false maxBytesLocalOffheap = 0 maxBytesLocaldisk = 0 pinned = false ]```

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...