【问题标题】:Spring with ehcache - @Cacheable method does not cacheSpring with ehcache - @Cacheable 方法不缓存
【发布时间】:2016-02-09 15:58:23
【问题描述】:

当我调用我用@Cacheable("myTest") 注释的方法时,我知道缓存没有被使用,因为我在方法内部进行了打印,如果使用缓存,则不应打印。

在日志中,我知道缓存正在初始化

DEBUG net.sf.ehcache.store.MemoryStore - Initialized net.sf.ehcache.store.MemoryStore for myTest

我应该提到调用方法的方式是普通的 Java new MyCacheObject().cacheMethod("key");,而不是使用 Spring bean。缓存会这样工作吗?

【问题讨论】:

  • 您是否使用@EnableCaching 启用了缓存?无论如何,添加有关您的配置和项目结构的更多详细信息

标签: spring ehcache


【解决方案1】:

我应该提到调用方法的方式是普通的 Java new MyCacheObject().cacheMethod("key");,而不是使用 Spring bean。 缓存会这样工作吗?

Spring 应该能够管理您的对象生命周期,以便创建添加缓存行为所需的代理。所以,这种方法行不通。如果您不能让 spring 为您创建 bean,唯一的选择是在 cacheMethod 中手动进行缓存检查并实现典型的 get-if-not-found-then-proceed-and-put -最终工作流程。

【讨论】:

  • 谢谢。你是对的。我修改了代码以使用 spring 托管 bean,它按预期工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-29
相关资源
最近更新 更多