带ehcache的Spring - @Cacheable方法不缓存

时间:2016-02-09 15:58:24

标签: spring ehcache

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

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

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

我应该提到调用该方法的方法是常规Java new MyCacheObject().cacheMethod("key");而不是使用Spring bean。缓存是否会以这种方式工作?

1 个答案:

答案 0 :(得分:1)

  

我应该提到调用该方法的方法是常规Java new MyCacheObject().cacheMethod("key");而不是使用Spring bean。   缓存是否会以这种方式工作?

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