Spring快取抽象

2021-10-09 14:18:11 字數 590 閱讀 2159

spring定義了org.springframework.cache.cache和org.springframework.cache.cachemanager介面來統一不同的快取技術,並支援jcache註解簡化開發。

每次呼叫需要快取功能的方法時,spring會檢查指定引數的指定方法的目標方法是否已經被呼叫過,如果有就直接從快取中獲取呼叫後的結果,如果沒有就呼叫方法並快取結果給放回使用者,下次呼叫直接從快取獲取

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-8wojkpen-1600438340433)(

@cacheable的執行流程(先查詢快取,預設按照引數的值作為key去查詢,沒有就執行方法體,並將結果放回快取)

@cacheput先執行方法體,再將返回結果快取起來(這裡的key的值要特別注意,不然儘管更新快取了,但是key值不一樣,也不能正確的更新到應該更新的快取。key的值可以有#result.id。但是@cacheable就不能使用這個。

@cacheevict刪除快取:

@caching可以多種快取規則在裡面

@cacheconfig,放在類上,表示可以將共用的一些設定放在裡面,這樣就不必再每乙個註解中寫相同的內容。

Spring快取註解

快取註解有以下三個 cacheable cacheevict cacheput 1 cacheable value accountcache 這個注釋的意思是,當呼叫這個方法的時候,會從乙個名叫 accountcache 的快取中查詢,如果沒有,則執行實際的方法 即查詢資料庫 並將執行的結果存入快取...

Spring快取支援

一 點睛 spring定義了cachemanager和cache介面用來統一不同的快取的技術。cachemanager spring提供的各種快取技術抽象介面。cache 包含快取的各種操作 增加 刪除 獲得快取 二 spring支援的cachemanager 針對不同的快取技術,需要實現不同的ca...

Spring實戰 快取

提到快取,你能想到什麼?一級快取,二級快取,web快取,redis 你所能想到的各種包羅永珍存在的打著快取旗號存在的各種技術或者實現,無非都是宣揚快取技術的優勢就是快,無需反覆查詢等。當然,這裡要講的不是一級二級,也不是redis,而是spring的快取支援。當時基於工作上的業務場景,考慮需要用到快...