Spring 内置的缓存机制 SpringCache

使用 spring 缓存:

导入 POM 依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
    <version>${spring_boot_version}</version>
</dependency>

1.为项目开启缓存。

在启动类 Application.java 或者配置类 CacheConfig 中添加 @Enablecaching
在这里插入图片描述

2.加入查询缓存。

方法上添加 @Cacheable,把方法返回值放到指定的 spring 缓存中。当下次返回时,如果能够从缓存中找到值,那么该方法则不再被执行。
举例1:
在这里插入图片描述
举例2:
在这里插入图片描述


那么值是被放到指定的那个缓存区域呢?

加入和查询都是按照 value 和 key 来划分的。spring 会按 value 来分区,然后每个区又分为多个key值,而我们 return 的值就会作为 key 的映射。


如果在缓存中查找到有值了,还会不会执行方法体呢?
如果该指定缓存已经有值了,那么方法体不再执行,而是直接使用缓存中的值。

3.修改和删除操作需要删除缓存

方法上添加 @CacheEvict

//       @CacheEvict:缓存清除
//       key:指定要清除的数据
//       allEntries = true : 指定清除这个缓存中的所有数据
//       beforeInvocation=fales: 缓存的清除是否在方法之前执行
//       默认代表缓存清除操作是在方法执行之后执行;如果出现异常缓存就不会清除
//       beforeInvocation=true  代表清除缓存操作是在方法运行之前执行,无论方法是否出现异常,缓存都清除

    @CacheEvict(value = "PROPERTY_CACHE_BY_ID")
    public void deleteEmp(Integer id){
          System.out.println("delteEmp: " + id);
          int i = 101/0;
          emploeeMapper.deleteEmpById(id);
    }

扩展

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值