# 缓存注解
~~~
@CacheConf:作用在类上
功能:
默认给指定的类下面方法中含有注解Cache、CachePut、CacheClear前面添加前置scop的key;
当Cache、CachePut、CacheClear指定了scope时,@CacheConf指定的scop将失去效果
~~~
~~~
@Cache: 作用在方法上
将方法的返回值缓存起来,key 可以使用el表达式来指定key
~~~
~~~
@CachePut: 作用在方法上
根据key值更新缓存,key 可以使用el表达式来指定key。缓存值为方法返回值
~~~
~~~
@CacheClear: 作用在方法上
根据key值更新缓存,key 可以使用el表达式来指定key
~~~
## 缓存key,以及存储的值
~~~
user("user") 下的缓存key如下:
~~~
1. user:user:{userId}
缓存单个用户sys_user 里面信息
2. user:role:{userId}
存储用户的单表sys_role所有角色信息
3. user:menu:{userId}
存储单表sys_menu用户的菜单信息
当菜单变更时: 需要清空`user:menu:*`的所有 缓存信息
当用户信息变更时: 需要清空 `user:*:{userId} `的所有缓存信息
当角色变更时: 需要清空`user:*:*`的用户信息
~~~
dict("dict") 下的缓存key如下:
~~~
4. dict:tree:{typeCode}
存储sys_dict_tree表中typeCode相同的树
5. dict:list:{typeCode}
存储sys_dict_list表中typeCode相同的list
~~~
office("office") 下的缓存key如下:
~~~
6. office:{officeId}
存储sys_office单表部门信息
## 缓存原则
1. 保存时候不插入缓存,只有在查询时候插入缓存
2. 更新和删除都是清除缓存