【Springboot总结】32 缓存的注解

一般缓存数据的操作,我们会在业务层处理

 

一、Cacheable

 

 1. 

 

2. 

【Springboot总结】32 缓存的注解_第1张图片

自定义key,比如把key设置成:方法名[参数] 

【Springboot总结】32 缓存的注解_第2张图片

 

3. 

自定义KeyGenerator来生成自定义的key

【Springboot总结】32 缓存的注解_第3张图片

【Springboot总结】32 缓存的注解_第4张图片

【Springboot总结】32 缓存的注解_第5张图片

 

4. 

 

5. 

上述的condition与unless都是支持SpEL表达式的,而且二者是的关系

 

6. 

sync与unless不可以同时使用 

 

二、CachePut

【Springboot总结】32 缓存的注解_第6张图片

【Springboot总结】32 缓存的注解_第7张图片

【注意】查询方法的结果放入缓存中时,key是方法参数,也就是对象的id。因为没有特殊配置,所以是默认的key

【Springboot总结】32 缓存的注解_第8张图片

【注意】修改的方法,key需要特殊指定,否则采用默认的不会把key对应的value数值覆盖。最终目的就是实现修改方法的key也是对象的id。

【Springboot总结】32 缓存的注解_第9张图片

 

 

三、CacheEvict

 

(1)指定key删除

【Springboot总结】32 缓存的注解_第10张图片

(2)清楚指定的缓存

【Springboot总结】32 缓存的注解_第11张图片

(3)beforeInvocation

【Springboot总结】32 缓存的注解_第12张图片

【提示】10/0就是模拟异常

 

四、Caching

【Springboot总结】32 缓存的注解_第13张图片

这个@Caching有点像上面三个的组合注解

 

【Springboot总结】32 缓存的注解_第14张图片

拓展:CacheConfig

【Springboot总结】32 缓存的注解_第15张图片

【提示】CacheConfig是没有value的!指定缓存的名称时只能使用cacheNames。使用该注解进行统一指定之后,类下的方法就不需要再指定了。

你可能感兴趣的:(【Springboot总结】32 缓存的注解)