@Cacheable、@CachePut和@CacheEvict介绍
来源:互联网 发布:中科大软件学院考研 编辑:程序博客网 时间:2024/04/29 01:33
1、@Cacheable:主要用来配置方法,能够根据方法的请求参数对其结果进行缓存。即当重复使用相同参数调用方法的时候,方法本身不会被调用执行,即方法本身被略过了,取而代之的是方法的结果直接从缓存中找到并返回了。
参数介绍:
value:缓存的名字,必须指定至少一个。
key:缓存的key,可以为空,如果指定要按照SpEL表达式编写;如果不指定,则缺省按照方法的所有参数进行组合。
condition:缓存的条件,可以为空,使用SpEL编写,返回true或者false,只有为true才能缓存。
例子:
@Cacheable(value="shops:detail",key="'id:'+#p0") public Shop getById(String id);
这两行代码的意思是指,缓存的名字为:shops:detail,其中缓存的key值为id:id的值。其中#p0的意思是指加有@Cacheable注解的方法中的第一个参数
2、@CacheEvict:主要对方法配置,用来标记要清空缓存的方法,当这个方法被调用并满足一定条件后,即会清空缓存。
参数解析:
- value:缓存的位置,不能为空。
- key:缓存的key,默认为空。
- condition:触发的条件,只有满足条件的情况才会清楚缓存,默认为空,支持SpEL。
allEntries:true表示清除value中的全部缓存,默认为false。
例子:
@CacheEvict(value="shops:detail",key="'id:'+#p0['id']",condition="#p0['id']>0") public Shop getById(Map<String, Object> param);
上面两行代码表示,只要param中key为id的值大于0,将进行缓存操作,否则直接调用调用getById方法返回结果。
@Caching(evict={@CacheEvict(value="shops:brief",allEntries=true)}) public void delete(String id);
上面两行代码表示,只要执行了delete方法,就刷新缓存名为”shops:brief”下面的所有缓存。
3、@CachePut:主要针对方法的配置,能够根据方法的请求参数对其结果进行缓存,和@Cacheable不同的是,它每次都会触发真实方法的调用。
@CachePut(value="shops:detail",key="'id:'+#p0['id']") public Shop update(Map<String, Object> param);
上面两行代码表示,当调用update方法时,该方法体会被执行,并且执行的结果会返回写入到缓存中。
3 1
- @Cacheable、@CachePut和@CacheEvict介绍
- @Cacheable、@CachePut和@CacheEvict介绍
- Spring缓存注解@Cacheable,@CachePut , @CacheEvict介绍
- Spring缓存注解@Cacheable、@CachePut和@CacheEvict
- spring cache相关注解介绍 @Cacheable、@CachePut、@CacheEvict
- spring cache相关注解介绍 @Cacheable、@CachePut、@CacheEvict
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
- Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用
- Spring 缓存注解(@Cacheable、@CachePut、@CacheEvict)使用
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
- Spring注解@Cacheable、@CachePut、@CacheEvict的使用
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用注意点
- Spring缓存注解@Cache,@CachePut , @CacheEvict,@CacheConfig的介绍和redi的整合使用
- spring 缓存 @CachePut 和 @Cacheable 区别
- LeetCode----Kth Largest Element in an Array
- 架构之路(二):性能
- curl模拟用户post测试
- Oracle 数据库基础知识点总结(一)
- BZOJ 4278 ONTAK2015 Tasowanie 后缀数组
- @Cacheable、@CachePut和@CacheEvict介绍
- JS对select及option的操作详解
- hdu5492(2015合肥网络赛I题)
- 架构之路(三) 单元测试
- 21IC菜农研究的HotWC3超级CRC运算器
- 基于FPGA与CY7C68013A的数据采集开发板测试(一)
- 仿StickyListHeaders 实现listview的header滑动效果(类似QQ好友列表)
- arcgis切片地图服务
- iOS界面编程-UILabel