前言:本文不編寫快取的具體實現**,只講解一些關於快取的具體知識點
關於快取:
spring從3.1開始定義了org.springframework.cache.cache 和org.springframework.cache.cachemanager介面來統一不同的快取技術; 並支援使用jcache(jsr-107)註解簡化我們開發;首先講解springboot快取的幾個重要的註解• cache介面為快取的元件規範定義,包含快取的各種操作集合; • cache介面下spring提供了各種***cache的實現;如rediscache,ehcachecache , concurrentmapcache等;
• 每次呼叫需要快取功能的方法時,spring會檢查檢查指定引數的指定的目標方法是否 已經被呼叫過;如果有就直接從快取中獲取方法呼叫後的結果,如果沒有就呼叫方法 並快取結果後返回給使用者。下次呼叫直接從快取中獲取。 • 使用spring快取抽象時我們需要關注以下兩點; 1、確定方法需要被快取以及他們的快取策略 2、從快取中讀取之前快取儲存的資料
註解講解:
用途:主要針對方法配置,能夠根據方法的請求引數對其結果進行快取,以後若需要同樣的資料則不需要呼叫資料庫,直接從快取中獲得。
幾個重要的屬性:
1:快取的名稱,在 spring 配置檔案中定義,必須 指定至少乙個,將方法返回的結果放在那個快取中,以陣列的形式
例如: @cacheable(value=」mycache」) 或者 @cacheable(value=
2:key:快取資料制定的key。快取資料是以鍵值對的形式存在。
key的常用方法:(可以不寫,預設為方法的引數值)
3、keygenerator: key的生成器,可以自己編寫key的生成器元件。
注意:在使用時key和keygenerator二選一。
4、cachemanager: 指定快取管理器。
5、condition: 指定符合條件的情況下才快取;如: condition = 「#id>0」 "#a0>1"才進行快取
6、unless: 否定快取; 當unless指定的條件為true,方法的返回值就不會快取;
如:可以獲取到結果進行判斷unless = "#result == null " 當方法結果為null時,不快取。
7、sync: 是否使用非同步模式
public @inte***ce
caching
; cacheput[
]put()
default
; cacheevict[
]evict()
default
;}
@caching
( cacheable =
, put =
)
>
>
org.springframework.bootgroupid
>
>
spring-boot-starter-data-redisartifactid
>
dependency
>
spring boot 快取配置
隨著時間的積累,應用的使用使用者不斷增加,資料規模也越來越大,往往資料庫查詢操作會成為影響使用者使用體驗的瓶頸,此時使用快取往往是解決這一問題非常好的手段之一。spring 3開始提供了強大的基於註解的快取支援,可以通過註解配置方式低侵入的給原有spring應用增加快取功能,提高資料訪問效能。在sp...
springboot快取測試
配置pom.xml加入快取依賴 org.springframework.boot spring boot starter cache 程式入口加上註解 enablecaching快取對應的實體類序列化 implements serializable 在快取的需要快取的service 加上 cache...
SpringBoot快取使用
org.springframework.boot spring boot starter cache 專案使用springboot自帶的快取機制實現快取 redis快取 redis是一款記憶體快取記憶體資料庫 membase快取 memcache是乙個自由和開放源 高效能 分配的記憶體物件快取系統。...