Cache:缓存接口,定义缓存操作。实现由RedisCache,EhCacheCache,ConcurrentMapCache等
CacheManager:缓存管理器,管理各种Cache主键
@EnableCaching:开启基于注解的缓存
/*
几个属性:
1.cacheName/value:指定缓存组件的名字
2.key:缓存数据使用的key;可以用它来指定,。默认使用方法参数的值
3.keyGenerator:key的生成器;可以自己指定key的生成器的组件id
key/keyGenerator二选一使用
4.cacheManager:指定缓存管理器;或者cacheResolver指定获取解析器
5.condition:指定符合条件的情况下才缓存;
6.unless:否定缓存;当unless指定条件为true,方法的返回值就不会被缓存;可以获取到结果进行判断
7.sync:是否使用异步模式
*/
@CacheEvict:清空缓存
?
/*
* @CacheEvict:缓存清除
* 通过key指定要清除那个数据
* 属性:
* allEntries:是否删除一个缓存组件中所有数据,默认false
* beforeInvocation:缓存的清除是否在方法之前执行,默认false;如果方法出现异常缓存就不会清除
* */
@ CachePut:保证方法被调用,又希望结果被缓存
/*
* @CachePut:及调用方法有更新缓存数据
* 运行时机:
* 1.先调用目标方法
* 2.将目标方法结果缓存起来
*要想达到效果,必须做到修改key和存的时候的key相同。
* */
@Caching:定义复杂的缓存
/*
* @Caching定义复杂的缓存规则
*
* */
@Cacheconfig:在类上指定公共属性,在方法缓存山就不用指定了(抽取缓存的公共属性)
以下是@CacheConfig的源码,可以抽取cachenames,keyGenerator,cacheManager,cacheResolver这四个公共属性
public @interface CacheConfig {
String[] cacheNames() default {};
?
String keyGenerator() default "";
?
String cacheManager() default "";
?
String cacheResolver() default "";
}
?
keyGenerator:缓存数据时key生成策略,自定义key名字
原文:https://www.cnblogs.com/yueyueniao-gif/p/12861147.html