第九章:(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 一致。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM