Cacheable、CacheEvict、Caching使用示例

SpringBoot项目整合cache后,处理缓存非常方便,可以直接使用注解的方式快捷的新增,删除缓存。最近使用到三个相关的注解,感觉很方便,用法分享给大家:
1,@Cacheable
@Cacheable添加缓存,方法相同参数请求时会直接读取缓存中的数据

@Cacheable(value = CacheValueConsts.CONFIG_NOTIFICATION_PAGE, key = "#paramPage")
    public List<ConfigNotificationEntity> selectNotificationListCache(NotificationPageParamBean paramPage) {
        List<ConfigNotificationEntity> ConfigNotificationEntities =  this.baseMapper.selectNotificationList(paramPage);
        return ConfigNotificationEntities;
    }

value :缓存名称
key:缓存的key,#xxx的用法是获取方法参数xxx作为key,若xxx为对象,也可以获取该对象的某一个属性作为key。(我自己尝试不用#获取方法参数生成key,直接用字符串写死该key值,居然一直报错,暂时没找到问题原因…)
补充:查阅资料得知,该注解还存在其他参数,分别是condition(缓存条件),sync(标识是否同步)

2,@CacheEvict
@CachEvict 能够根据一定的条件对缓存进行清空。下面是我的某一个使用示例:

   @CacheEvict(value = CacheValueConsts.CONFIG_NOTIFICATION, key = "#configNotification.getId()")
    public boolean updateByIdCache(ConfigNotificationEntity configNotification) {
        configNotificationService.clearNotificationCache();
        return configNotificationService.updateById(configNotification);
    }

value :缓存名称
key:缓存的key
condition:缓存的条件
allEntries:是否清除所有缓存数据,默认值是false

3,@Caching
@Caching注解可以让我们在一个方法或者类上同时指定多个Spring Cache相关的注解。有三个属性:cacheable、put和evict

 @Caching(evict = {
            @CacheEvict(value = CacheValueConsts.CONFIG_NOTIFICATION_PAGE, allEntries = true),
            @CacheEvict(value = CacheValueConsts.CONFIG_NOTIFICATION_ALL, allEntries = true)
    })
    @Override
    public boolean clearNotificationCache() {
        return true;
    }

这三个注解的用法,我也是今天刚接触,只是有一些粗浅的了解和使用,分享出来给大家,还有很多细致的东西没有搞清楚,后续会持续研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值