这可能很简单,但我想知道我是否可以在一个方法上一起调用@Cacheable和@CacheEvict,如下所示:
@Cacheable(value = "empListCache")
@CacheEvict(value = "empListCache", allEntries = true)
public List<Emply> findAllEmplys() throws SomeException
上面的代码是每次调用方法时都会逐出empListCache,还是只在缓存满了时被驱逐?
感谢。
答案 0 :(得分:1)
你准备做什么?是的,你可以这样做,但这基本上完全违背了缓存的目的。
@CacheEvict
默认情况下在方法调用后运行。因此,上面的声明将使用相同的密钥缓存列表(因为您的方法没有参数),然后完全清除缓存。
长话短说:如果你删除了两个注释,你会得到完全相同的结果(除了缓存“emptyListCache”没有被清除)。