是否可以在@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);
}
}
答案 0 :(得分:1)
是
@CacheEvict(key = "#userId + #root.target.id")
#root.method
,#root.target
和#root.caches
分别用于引用方法,目标对象和受影响的缓存。