緩存模塊使用示例

2018-12-24 22:41 更新
示例一:直接通過緩存模塊操作緩存數(shù)據(jù)
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í)直接從緩存中返回值;

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)