zoukankan      html  css  js  c++  java
  • 第九章:(3)Spring Boot 与 缓存 之 @CachePut 注解

    一、@CachePut

      @CachePut:既调用方法,又更新缓存数据,同步更新缓存,修改了数据库的某个数据,同时更新缓存。
      注意:存取使用的 key 必须是同一个。

      运行时机
        1、先调用目标方法
        2、将目标方法的结果缓存起来

      测试步骤:

        1、先查询1号员工,查到的结果会放到缓存中

    key:id=1 的参数
    value: 1号员工
    

      

        2、以后查询还是之前缓存中的结果
        3、更新1号员工
           将方法的返回值也放进缓存了:

    key:传入参数 employee 对象
    value:返回的 employee 对象
    

      

        4、再来查询1号员工
         应该是更新后的员工

    key = "#emp.id" ,使用传入的参数的 id 进行更新
    key = "#result.id" 参数与返回值一样
    

      

          注意:@Cacheable 的 key 不能用 #result【要先用key去缓存中查询】

        为什么是没有更新前的? 【1号员工没有在缓存中更新,使用的 key 不一样

      

    二、示例代码

      1、查询员工

        @Cacheable(cacheNames = {"emp"}) //默认的key就是参数 id 
        public Employee getEmpById(Integer id) {
            System.out.println("查询" + id +"号员工");
            return employeeMapper.getEmpById(id);
        }

      2、更新员工

        @CachePut(value = {"emp"}, key = "#result.id")  
        public Employee updateEmp(Employee emp) {
            System.out.println("updateEmp:" + emp);
            Integer result = employeeMapper.updateEmp(emp);
            return emp;
        }

      使用 @CachePut 生效,必须要与存放缓存的  key 一致。

     

  • 相关阅读:
    Cookie练习
    JS写九九乘法表
    对GridView实现分页
    对GridView的行加颜色并弹出Kindeditor
    对Dictionary的理解
    一、android 开发环境大搭建
    main方法的测试
    main 方法的书写(1)
    由InvocationTargetException引发的思考
    汇编学习笔记之处理器体系结构
  • 原文地址:https://www.cnblogs.com/niujifei/p/15730813.html
Copyright © 2011-2022 走看看