Spring緩存注解@Cacheable
@Cacheable
@Cacheable 的作用 主要針對(duì)方法配置,能夠根據(jù)方法的請(qǐng)求參數(shù)對(duì)其結(jié)果進(jìn)行緩存
@Cacheable 作用和配置方法
| 參數(shù) | 解釋 | example |
|---|---|---|
| value | 緩存的名稱,在 spring 配置文件中定義,必須指定至少一個(gè) | 例如: @Cacheable(value=”mycache”) @Cacheable(value={”cache1”,”cache2”} |
| key | 緩存的 key,可以為空,如果指定要按照 SpEL 表達(dá)式編寫(xiě),如果不指定,則缺省按照方法的所有參數(shù)進(jìn)行組合 | @Cacheable(value=”testcache”,key=”#userName”) |
| condition | 緩存的條件,可以為空,使用 SpEL 編寫(xiě),返回 true 或者 false,只有為 true 才進(jìn)行緩存 | @Cacheable(value=”testcache”,condition=”#userName.length()>2”) |
實(shí)例
@Cacheable(value=”accountCache”),這個(gè)注釋的意思是,當(dāng)調(diào)用這個(gè)方法的時(shí)候,會(huì)從一個(gè)名叫 accountCache 的緩存中查詢,如果沒(méi)有,則執(zhí)行實(shí)際的方法(即查詢數(shù)據(jù)庫(kù)),并將執(zhí)行的結(jié)果存入緩存中,否則返回緩存中的對(duì)象。這里的緩存中的 key 就是參數(shù) userName,value 就是 Account 對(duì)象。“accountCache”緩存是在 spring*.xml 中定義的名稱。
|
1
2
3
4
5
6
|
@Cacheable(value="accountCache")// 使用了一個(gè)緩存名叫 accountCache public Account getAccountByName(String userName) { // 方法內(nèi)部實(shí)現(xiàn)不考慮緩存邏輯,直接實(shí)現(xiàn)業(yè)務(wù) System.out.println("real query account."+userName); return getFromDB(userName); } |
轉(zhuǎn)載自 : https://www.jb51.net/article/112849.htm

浙公網(wǎng)安備 33010602011771號(hào)