其他分享
首页 > 其他分享> > Spring @Cacheable无法正常工作-我的配置出了什么问题?

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