- 所有已实现的接口:
- org.springframework.cache.interceptor.KeyGenerator
public class MultiKeyGenerator
extends Object
implements org.springframework.cache.interceptor.KeyGenerator
Spring Cache默认使用SimpleKeyGenerator。
设计此类主要是因为Spring Cache的@Cacheable和@CacheEvict不支持同时操作做个key,因为开发经常会提供批量删除/修改的接口,
那就有可以执行一个接口时同时删除一批次缓存,但一个@CacheEvict注解只会删除一个缓存。
所以会出现一个现象,当你用批量删除/修改时,你只能用@CacheEvict(allEntries=true)来删除指定name cache中的所有缓存。
这明显不是我们想要的结果啊,我只修改了两个实例,你非得让我把所有缓存都删除了???要不然就限制不提供批量操作接口???
- 作者:
- WangXiaoJin