一.基础概念
1.Cache介绍
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200803233510818.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxNTY0NTcz,size_16,color_FFFFFF,t_70)
2.@Cacheable/@CachePut/@CacheEvict)的主要参数
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200803233617501.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxNTY0NTcz,size_16,color_FFFFFF,t_70)
二.@Cacheable使用demo
//value 等价于 cacheNames
@Cacheable(cacheNames = "'getString'", key = "'d'")
public String getString() {
return "aaa";
}
三.@CacheEvict使用demo
@CacheEvict(value = "'getString'", key = "'d'")
public String cleanString() {
return "bb";
}
四.@Caching使用demo
Caching注解是Cacheable、CachePut、CacheEvict的组合注解
public @interface Caching {
//多个缓存
Cacheable[] cacheable() default {};
//多个
CachePut[] put() default {};
//多个清缓存操作
CacheEvict[] evict() default {};
}
@Caching(evict={@CacheEvict(value = "add", key = "'getAdd' + #so.positionId"),
@CacheEvict(value = "add", key = "'updateAdd' + #so.positionId")})
public void add(Add so) {
//do something
}