当前位置: 首页 > 知识库问答 >
问题:

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

耿弘阔
2023-03-14

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

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

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

我应该提到调用该方法的方法是常规Javanewmycacheobject()。缓存方法(“键”) 而不是使用Springbean。缓存会以这种方式工作吗?


共有1个答案

萧亦
2023-03-14

我应该提到调用该方法的方法是常规Javanewmycacheobject()。缓存方法(“键”) 而不是使用Springbean。缓存会以这种方式工作吗?

Spring应该能够管理对象生命周期,以便创建添加缓存行为的所需代理。所以,这种方法行不通。如果您不能让spring为您创建bean,那么唯一的选择就是在cacheMethod中手动执行缓存检查,并实现典型的get If not found然后继续并最终放入工作流。

 类似资料:
  • 我正在将spring 4.1与ehcache一起使用。我可以用整数键缓存字符串值,但每当我尝试缓存对象时,它都会失败,不会出现任何错误。我保存在缓存中的模型(POJO)确实实现了hashcode、equals和tostring函数。 ehcache配置如下 Spring配置如下所示 我要缓存的类和方法 如果我将getPerson方法的返回值从Party对象替换为String,它就会工作。有什么想法

  • 我有一个用@Cacheable注释的方法。如果在方法内部捕获了异常,我希望清除缓存。但是,缓存似乎是在清除缓存的行之后执行的方面中加载的。因此,当在方法中捕获异常时,即使清除了缓存,空字符串结果仍保留在缓存中。 我应该从哪里清除缓存?

  • 我得到一个错误,而使用java配置为ehache与Spring引导和Spring缓存启动无法找到名为bpConfigs的缓存为Builder[公共java.util.列表com.xxx.bp.repository.BpConfigRepository.getEligibleConfig()]缓存=[bpConfigs]|key="|keyGenerator="|cacheManager="|cac

  • 问题内容: 我在Spring(3.1)中使用以下@Cacheable: Spring: Maven: 要缓存的方法: las,当我调试代码时,我看到即使param1和param2相同(即未使用cahce),也多次调用了该缓存方法。 有任何想法吗? 问题答案: 密钥显示不正确- 您可能是说- 此外,如果在没有调试信息的情况下完成编译,则param1,param2参数名称将对表达式求值器不可用。相反,

  • 我需要缓存来自ReactiveMongoRepository的数据。数据大约每年更新两次,所以我不在乎缓存是否过期。 由于我们不能将@Cacheable与flux一起使用,我想找到一种简单明了的方法来存储来自Mongo到redis的数据,如果存在,就使用该数据,否则就存储并服务于原始数据。 有没有比 我明确寻找的是一个选项,可以让我像@Cacheable注释一样缓存数据。我正在寻找一个通用的解决方