springcache缓存使用
1、开启基于注解的缓存
@EnableCaching
2、标注缓存注解
@Cacheable:用于方法上,表示将方法返回值放到缓存中。调用时机:在进入方法之前调用
CacheManager管理过个Cache组件,对缓存的CRUD操作在Cache组件中,每个缓存组件都有唯一的名字
几个属性:
cacheNames/value:指定缓存组件的名字
key:缓存数据使用的key,默认用方法的参数值作为key。
值可用SpEL;#id表示参数id的值;#a0、#p0、#root.args[0]均表示第一个参数的值。
keyGenerator:key的生成器,可以自己指定key的生成器的组件id。key/keyGenerator二选一
cacheManager:指定缓存管理器,或者cacheResolver指定解析器
condition:指定符合条件的情况下才缓存
unless:否定缓存。当unless指定的条件为true,方法返回值不放入缓存中
sync:是否使用异步
@CachePut:用于方法上,表示即调用方法,又同步更新缓存。调用时机:方法执行完成后调用
注意:更新数据时必须获取到已有的key
@CacheEvict(value = "user",allEntries = true)
beforeInvocation:缓存在什么时候清除,默认值为false,表示在调用方法之后执行。如果执行方法时发生
异常则不会清除缓存。
@CacheConfig:注解用在类上。作用抽取缓存公共部分,减少配置。如提前缓存名字