【问题标题】:Spring @Cacheable not working - what's wrong with my config?Spring @Cacheable 不起作用-我的配置有什么问题?
【发布时间】:2015-09-18 11:24:24
【问题描述】:

我已经看到过很多相同问题的化身,但我想我已经尝试了所有的修复方法 - 我的用法非常简单。

我一直在使用 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 根本不起作用。一定有一些非常明显的东西我错过了。 (我已经吃过午饭了)

【问题讨论】:

  • 我遇到了 Spring Caching 的问题,因为我在同一个类中调用了带注释的方法,忘记了代理不是这样工作的。你说注释在接口上,所以这可能不是你的问题,我只是把它扔在那里。

标签: spring caching java-5


【解决方案1】:

我的问题已解决。不幸的是,我无法准确指出我的问题出在哪里。当然,只需要我在问题中提到的即可。

为了解决这个问题,我稍微整理了我的 Spring 配置并清除了我的浏览器和应用程序服务器缓存以及临时目录。我做了一个完整的全新安装,缓存现在可以工作了。

我可能正在使用早期版本进行测试,该版本未在应用程序配置中包含这一重要行:

<cache:annotation-driven/>

我一开始就省略了。也许我的添加直到现在才被采纳。否则我很难过。感谢您的宝贵时间。

【讨论】:

    【解决方案2】:

    你有没有改变

    @Cacheable(value="parentAppIds", key="accountNumber")
    

    @Cacheable(value="parentAppIds", key="#accountNumber")
    

    添加# 为我在尝试使缓存正常工作时消除了一个错误。

    【讨论】:

      猜你喜欢
      • 2012-11-06
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 2017-03-08
      相关资源
      最近更新 更多