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

为Spring的@Cacheable注释定义键的最佳方法是什么

宗政浩慨
2023-03-14
@Override
@Cacheable(value = "cacheName", key = "cacheKey")
public List<String> getCacheMethod() throws Exception{

附注。当我试图从其他地方访问此方法时,出现以下错误。

Org.SpringFramework.Expression.Spel.SpelEvaluationException:EL1008E:(pos 0):在“org.SpringFramework.Cache.Interceptor.CacheExpressionRootObject”类型的对象上找不到字段或属性“Cache Key”

共有1个答案

陆阳曜
2023-03-14

该方法没有参数,因此无法使用参数/参数作为默认键,也不能使用“static text”作为键,可以执行以下操作:

声明如下

public static final String KEY = "cacheKey";
  • 必须是公共
  • 必须是静态最终
@Override
@Cacheable(value = "cacheName", key = "#root.target.KEY")
public List<String> getCacheMethod() throws Exception{
 类似资料:
  • 为什么spring对一个注释为@Cacheable的方法的一次调用执行我的定制@Cacheable密钥生成器两次,为什么不只执行一次。 我的KeyGenerator实现 我的方法用@Cacheable和自定义keyGenerator注释 spring Rest控制器,它调用用@cacheable注释的方法 当我用自定义的keyGenerator对用@Cacheable注释的方法进行一次调用时,我在

  • 代码如下所示。 但是,上面的代码不起作用:它给出了以下异常:

  • 通用方法 内部控制器 问题 我们如何在Generic方法中使用@Cacheable("abc")注释,并使用通用DAO的Spring mvc hibernate按需销毁缓存 根据SpringDoc中的示例,它指定了简单方法上的注释! 我实际上要求,当Id传递给泛型方法时,它应该首先在缓存中查找,我也应该按需销毁缓存!

  • 本文向大家介绍Java注释的最佳做法。,包括了Java注释的最佳做法。的使用技巧和注意事项,需要的朋友参考一下 Java支持单行,多行注释和文档注释。文档注释由javadoc工具理解,可用于创建基于HTML的文档。以下是在Java中使用注释时的最佳实践。 每当您希望生成其文档时,请使用文档注释。  多行注释用于注释掉未使用的代码。 最好在代码中使用单行注释,并且注释应该足够有意义以展示业务逻辑的目

  • 使用Spring bean作为带有@cacheable注释的键

  • 现有的答案很好地解释了如何在方法执行时间日志中使用自定义注释。我想知道是否有办法对类和方法使用相同的注释,但是点切应该在使用它的地方有所不同。 若注释用于类,那个么类中的所有方法都应该考虑在方面类中记录执行时间(比如