springboot+cache缓存上

cache内容

缓存的意义:将方法的运行结果进行缓存,以后再要相同的数据,直接从缓存中获取,不用调用方法;

cacheManager管理多个Cache组件,对缓存的真正操作CRUD操作在Cache组件中,每一个缓存组件有自己唯一一个名字;

几个属性:
在这里插入图片描述

  • cacheNames/value:指定缓存的名字;

  • key:缓存数据使用的key:可以用它来指定。默认是使用方法参数的值 1-方法的返回值
    编写SpEL: #id:参数id的值 #a0 #p0 #root.args[0]

  • keyGenerator: key的生成器;可以自己指定key的生成器的组件id

  • cacheManager:指定缓存管理器;或者cacheResolver指定缓存解析器

  • condition:指定符合条件的情况下缓存;condition = “#id>1"

  • unless:否定缓存;当unless指定的条件为true,方法的返回值就不会缓存,可以获取到结果进行判断; unless = “#result = null”

    @Cacheable(cacheNames = {
   "emp"},key="root.id")
    public Employee getEmpById(Integer id){
   
        System.out.println("查询"+id+"号员工");
        Employee employee = employeeMapper.getEmpById(id);
        return employee;
    }

在这里插入图片描述
@CachePut:

//    @CachePut:既调用方法,又更新缓存数据;同步更新缓存
//    修改了数据库的某个数据,同时更新缓存
//    运行:
//      1.先调用目标方法
//      2.将目标方法的结果缓存起来
    @CachePut(key= "#result.id")
    public Employee updateEmp(Employee employee){
   
        System.out.println("updateEmp"+employee);
        employeeMapper.updateEmpById(employee);
        return employee;
    }

@CacheEvict

//    @CacheEvict:缓存清除
//    key:指定要清除的数据
//    allEntries = true:指定清除这个缓存中的所有数据
//    beforeInvocation=true 代表清除缓存操作是在方法运行之前执行,无论方法是否出现异常,缓存都清除
    @CacheEvict
    public void deleteEmp(Integer id){
   
        System.out.println("deleteEmp:"+id);
        int i = 101/0;
        employeeMapper.deleteEmpById(id);
    }

搭建基本环境

  1. 导入数据文件 创建出department和employee表
  2. 创建Javabean封装数据
  3. 整合MyBatis操作数据库 配置数据源信息

使用步骤

  1. 导入模块
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
</dependency>
  1. 在主函数中开启缓存模式 @EnableCaching

@EnableCaching
@SpringBoot
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值