1、@Cacheable
开启基于注解的缓存,使用 @EnableCaching 标识在 SpringBoot 的主启动类上
参数 –cacheNames/value :用来指定缓存的名字,必须指定至少一个
参数 – key : 缓存的 key,可以为空,默认是使用方法参数的值,如果指定要按照 SpEL 表达式编写
参数 –keyGenerator :key 的生成器。 key 和 keyGenerator 二选一使用
参数 –cacheManager :可以用来指定缓存管理器。从哪个缓存管理器里面获取缓存。
参数 – condition : 缓存的条件,可以为空,使用 SpEL 表达式编写,返回 true 或者 false,只有为 true 才进行缓存
参数 – unless :否定缓存。当 unless 指定的条件为 true ,方法的返回值就不会被缓存。当然你也可以获取到结果进行判断。(如unless = "#result == null")
参数 –sync :是否使用异步模式
@Cacheable(value=”缓存的名称”,key=”#xxx”)
使用@Cacheable注解,调用的是redis的set函数,生成的value和key用::来进行连接
user::1
SpEL 表达式语法
@Cacheable(cacheNames = {"emp"},key = "#root.methodName+'['+#id+']'")
public Employee getEmp(Integer id){
System.out.println("查询"+id+"号员工");
Employee emp = employeeMapper.getEmpById(id);
return emp;
}
此时当id为1时,key的值为 getEmp[1]