我已经看到许多关于同一问题的化身,但我想我已经尝试了所有修复程序-我的用法很简单.
我一直在使用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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。