【问题标题】:Using non-constant properties or fields in key for @CacheEvict在 @CacheEvict 的键中使用非常量属性或字段
【发布时间】:2017-08-21 14:01:53
【问题描述】:

是否可以在@CacheEvict 注释的键中使用当前类的非常量字段或属性?例如:

public class Feature {

    private int id;

    @Autowired
    private FeaturesClient featuresClient;

    @CacheEvict(value = CacheConfiguration.FEATURES, key = 
               "T(java.lang.String).valueOf(#userId).concat(T(java.lang.String)" +
               ".valueOf( **#id** ))")
    public boolean isFeatureAvailable(long userId) {
        return featuresClient.isFeatureAvailable(userId, id);
    }

}

【问题讨论】:

    标签: java spring spring-cache


    【解决方案1】:

    是的。

    @CacheEvict(key = "#userId + #root.target.id")
    

    Documentation:

    #root.method#root.target#root.caches 分别用于引用方法、目标对象和受影响的缓存。

    【讨论】:

      猜你喜欢
      • 2015-06-30
      • 2021-11-05
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 2012-06-05
      相关资源
      最近更新 更多