【发布时间】:2016-09-23 07:49:51
【问题描述】:
我有以下场景:
- 春季 3.2
- EHCache
-
一个不能被修改的超类(在一个 jar 中),结构类似这样:
public abstract class SuperClass<E extends Object> implements SuperIface<E> { public void insert(E entity) { } } -
一个子类,(可以修改),在
@CacheEvict中具有这种结构和稍微复杂一点的条件import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; @Service @CacheEvict(value = "entityCache", allEntries = true, condition = "'insert'.equals(#root.methodName)") public class SubClass extends SuperClass<Entity> implements ISubIface { public void anotherMethod() { } }
当 SuperClass 的 insert 方法被调用时,是否有任何选项说 Spring 使 @CacheEvict 注释有效?换句话说,当从 SubClass 实例调用 insert 方法时,我可以删除缓存条目吗?
请注意,我正在寻找通过配置实现此目的的方法。我知道我可以在子类中覆盖超类的方法,但在某些情况下(超类中的另一个逻辑)我不想这样做。
【问题讨论】:
标签: java spring caching ehcache spring-cache