Spring缓存注解@Cacheable、@CachePut、@CacheEvict、@CacheConfig等

1 篇文章 0 订阅
1 篇文章 0 订阅

@Cacheable

@Cacheable是用来声明方法是可缓存的。将结果存储到缓存中以便后续使用相同参数调用时不需执行实际的方法。

默认key的生成按照以下规则:

  • 如果没有参数,则使用0作为key
  • 如果只有一个参数,使用该参数作为key
  • 如果又多个参数,使用包含所有参数的hashCode作为key

自定义key:

  • 直接使用字符串,如“1”
  • 支持SpringEL表达式,如“#demo.id”

sync属性:

  • 缓存的同步
  • 可以指示底层将缓存锁住,使只有一个线程可以进入计算,而其他线程堵塞,直到返回结果更新到缓存中。
  • “true” or “false”

condition属性:

  • 判断是否需要缓存,条件为true时才缓存
  • “#name.length>10”

@CachePut

@CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。
以key作为键,返回值作为值,进行缓存。

@CacheEvict

对缓存进行清除,用法和Cacheable等一样,清除指定key的缓存

allEntries属性: 是否清空所有缓存内容
beforeInvocation属性: 是否在方法执行前就清空

@CacheConfig

作用与类,可以代替方法的缓存名,value

    @CachePut(value = "demo", key = "#demo.id")
    public Demo add(Demo demo) {
        baseMapper.insert(demo);
        return demo;
    }

    @Cacheable(value = "demo", key = "#demo.id")
    public Demo findById(Long id) {
        return baseMapper.selectById(id);
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值