Spring @Cacheable无法正常工作-我的配置出了什么问题?
作者:互联网
我已经看到许多关于同一问题的化身,但我想我已经尝试了所有修复程序-我的用法很简单.
我一直在使用Ehcache,但也没有用.因此,为了排除Ehcache问题并帮助指向更基本的内容,我移至SimpleCacheManager和ConcurrentMapCacheFactoryBean.
这是我的配置:
<cache:annotation-driven/>
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
<property name="caches">
<set>
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="parentAppIds"/>
</set>
</property>
</bean>
这是我的方法:
@Cacheable(value="parentAppIds", key="accountNumber")
public Long findApplicationId(String accountNsc, String accountNumber) throws EMSException {
....
}
这是接口上的方法,实现类是Spring托管的@Service(“ foo”)
我尝试按照建议的here使用“ p0”,但无济于事.我没有编译问题,服务器日志中也没有错误,所以我确信我的类路径上有所有必要的东西;并且命名空间都很好,因为我为此使用了STS-所以我省去了pom.xml和spring命名空间声明来阻止噪音.
我正在使用Spring 3.1; Java 1.5和Websphere 6.1
症状是使用相同参数重复访问该方法.
请帮忙-我饿了,不肯吃午饭,直到我钉好为止.
注意:我简化了@Cacheable声明,我的实际声明是
@Cacheable(value="parentAppIds", key="#p0.concat('-').concat(#p1)")
都不起作用.
谢谢.
**编辑-通过创建测试装备,我已经排除了Websphere是一个问题
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(...)
模仿正在发生的事情. @Cacheable根本不起作用.我肯定缺少某些令人眼花obvious乱的东西. (我已经吃过午饭了)
解决方法:
我的问题已解决.不幸的是,我无法确切指出问题所在.当然,所需要做的就是我在问题中提到的内容.
为了解决这个问题,我整理了一下Spring配置,并清除了浏览器和应用程序服务器的缓存以及临时目录.我做了一个完整的全新安装,并且缓存现在可以工作了.
我可能正在测试较早的版本,而该版本未在应用程序配置中包含此重要行:
<cache:annotation-driven/>
我一开始就忽略了这一点.也许直到现在我才开始添加.否则,我很沮丧.谢谢你的时间.
标签:java-5,caching,spring 来源: https://codeday.me/bug/20191030/1965268.html