W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
public static void main(String[] args) throws Exception { YMP.get().init(); try { // 操作默認(rèn)緩存 Caches.get().put("key1", "value1"); System.out.println(Caches.get().get("key1")); // 操作指定名稱的緩存 Caches.get().put("default", "key2", "value2"); System.out.println(Caches.get().get("default", "key2")); } finally { YMP.get().destroy(); } }
注:當(dāng)指定緩存名稱時(shí),請(qǐng)確認(rèn)與名稱對(duì)應(yīng)的配置是否已存在;
執(zhí)行結(jié)果:
value1 value2
這里用到了@Cacheable注解,作用是標(biāo)識(shí)類中方法的執(zhí)行結(jié)果是否進(jìn)行緩存,需要注意的是:
首先@Cacheable注解必須在已注冊(cè)到Y(jié)MP類對(duì)象管理器的類上聲明,表示該類支持緩存;
其次,在需要緩存執(zhí)行結(jié)果的方法上添加@Cacheable注解;
@Cacheable注解參數(shù)說明:
cacheName:緩存名稱, 默認(rèn)值為default;
key:緩存Key, 若未設(shè)置則使用keyGenerator自動(dòng)生成;
generator:Key生成器接口實(shí)現(xiàn)類,默認(rèn)為DefaultKeyGenerator.class;
scope:緩存作用域,可選值為APPLICATION、SESSION和DEFAULT,默認(rèn)為DEFAULT,非DEFAULT設(shè)置需要緩存作用域處理器(ICacheScopeProcessor)接口配合;
timeout:緩存數(shù)據(jù)超時(shí)時(shí)間, 可選參數(shù),數(shù)值必須大于等于0,為0表示默認(rèn)緩存300秒;
示例代碼:
@Bean @Cacheable public class CacheDemo { @Cacheable public String sayHi(String name) { System.out.println("No Cached"); return "Hi, " + name; } public static void main(String[] args) throws Exception { YMP.get().init(); try { CacheDemo _demo = YMP.get().getBean(CacheDemo.class); System.out.println(_demo.sayHi("YMP")); System.out.println(_demo.sayHi("YMP")); // System.out.println("--------"); // System.out.println(_demo.sayHi("YMPer")); System.out.println(_demo.sayHi("YMP")); System.out.println(_demo.sayHi("YMPer")); } finally { YMP.get().destroy(); } } }
執(zhí)行結(jié)果:
No Cached Hi, YMP Hi, YMP -------- No Cached Hi, YMPer Hi, YMP Hi, YMPer
以上結(jié)果輸出可以看出,sayHi方法相同參數(shù)首次被調(diào)用時(shí)將輸出“No Cached”字符串,說明它沒有使用緩存,再次調(diào)用時(shí)直接從緩存中返回值;
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: