gpt4 book ai didi

java - @Cacheable 不起作用

转载 作者:行者123 更新时间:2023-11-30 07:57:18 26 4
gpt4 key购买 nike

我在 Spring 3.2 中使用 @Cacheable 来缓存服务层方法的结果。服务类内部使用以下方法代码:

@Cacheable("questions")
public List<ABClassObject> getSecutityQuestionsList(){
List<ABClassObject> list = new ArrayList<ABClassObject>();
----------------
list = ----[DAO call]

return list;

}

xml配置

    <cache:annotation-driven />

<!-- Generic cache manager based on the JDK ConcurrentMap -->
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
<property name="caches">
<set>
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="questions" />
</set>
</property>
</bean>

由于使用jdk 1.6,无法使用EhCache。通过使用上面的代码模式,我无法缓存列表结果。当我调用上面的方法时,DAO 总是被调用。所以,建议我代码有什么问题。

提前致谢。

最佳答案

您应该检查的一些事情:

  1. getSecutityQuestionsList 方法的类是一个 spring bean,即,无论如何您都不使用 new 运算符。
  2. 从另一个 bean 调用 getSecutityQuestionsList 方法
  3. 在您的 xml 配置中添加 context:component-scan base-package="xxxxx"
  4. 在您的方法中放置一个断点。在堆栈跟踪中你应该看到一些 spring 代理的东西。当您调用服务的此方法时,您实际上应该调用 Spring 代理。

关于java - @Cacheable 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32498387/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com