• 30、springboot——缓存之JSR107——@CacheEvict的使用④


    *  @CacheEvict 缓存清除
    * key:指定要清除数据的key
    * allEntries = true : 把指定缓存组件中的缓存全部清除;指定了这个key也就不用指定了
    * beforeInvocation = true : 缓存的清除是否在方法执行之前执行
    * 默认是清除缓存在方法执行之后执行;
    * 配置为true时不管执行方法过程中是否出现异常在执行方法之前缓存都会会清除

    举例应用:
      在上一节的基础上service添加删除方法(同时按规则清除缓存)
        1、删除指定key对应的缓存数据
    @CacheEvict(value = "emp",key = "#id")
    public void del(Integer id){
        System.out.println("del:"+ id);
        //employeeMapper.deleteEmpById(id);
    }

          controller添加方法

        @GetMapping("/delEmp")
        public String deleteEmployee(Integer id){
            employeeService.deleteEmp(id);
            return "success";
        }

          操作步骤:假设同时查询1,2两个员工,然后删除1,再去查2,依然不会调用数据库;因为key指定了要清除的哪个缓存

        2、allEntries = true : 把指定缓存组件中的缓存全部清除;配置了这个key也就不用配置了

    @CacheEvict(value = "emp",allEntries = true)
    public void del(Integer id){
        System.out.println("del:"+ id);
        //employeeMapper.deleteEmpById(id);
    }

          操作步骤:假设同时查询1,2两个员工,然后删除1,再去查2,会调用数据库,因为emp中的缓存在调用这个delete方法之后就全被清除了

    
    
  • 相关阅读:
    Java中替换字符串中特定字符,replaceAll,replace,replaceFirst的区别
    牛客剑指offer 67题(持续更新~)
    从尾到头打印链表
    字符串变形
    缩写
    删除公共字符
    替换空格
    二维数组的查找
    acm博弈论基础总结
    acm模板总结
  • 原文地址:https://www.cnblogs.com/lyh233/p/12561007.html
Copyright © 2020-2023  润新知