緩存

提到緩存,你能想到什么?一級(jí)緩存,二級(jí)緩存,web緩存,redis……
你所能想到的各種包羅萬(wàn)象存在的打著緩存旗號(hào)存在的各種技術(shù)或者實(shí)現(xiàn),無(wú)非都是宣揚(yáng)緩存技術(shù)的優(yōu)勢(shì)就是快,無(wú)需反復(fù)查詢等。
當(dāng)然,這里要講的不是一級(jí)二級(jí),也不是redis,而是Spring的緩存支持。當(dāng)時(shí)基于工作上的業(yè)務(wù)場(chǎng)景,考慮需要用到緩存技術(shù),但是并不清楚該用什么樣的緩存技術(shù),起初甚至有想過(guò)把信息寫(xiě)到redis中,然后讀redis的信息(現(xiàn)在想想,真是小題大做),后來(lái)發(fā)現(xiàn)Spring提供了緩存的解決方案——Spring Cache。雖然最終找到了一個(gè)更加簡(jiǎn)便討巧的方式解決了問(wèn)題,但是今天還是把自己零碎的Spring Cache知識(shí)稍稍梳理下。
這里大概介紹下業(yè)務(wù)場(chǎng)景:

  • 現(xiàn)在有功能模塊一和功能模塊二,分別負(fù)責(zé)兩件事;

  • 執(zhí)行功能模塊二的時(shí)候,可以用到模塊一的執(zhí)行結(jié)果,當(dāng)然不用也可以,那就再執(zhí)行一遍;

  • 讀取功能模塊一執(zhí)行后存放在Cache中的數(shù)據(jù),這時(shí)候就省去重新執(zhí)行模塊一的冗余操作

流程圖如下:
Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),移動(dòng)開(kāi)發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

Spring Cache

有關(guān)Spring Cache的理論詳細(xì)介紹可以看官方文檔或者參閱《Spring實(shí)戰(zhàn)》第十三章,這里偏代碼實(shí)戰(zhàn)看看Spring Cache如何使用。

聲明啟用緩存

就像如果要啟用AOP需要添加

<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>

一樣,如果要用cache,也需要聲明

<cache:annotation-driven />

這樣還不夠,除此以外,我們還需要一個(gè)緩存管理器

<bean id="cacheManager"
          class="org.springframework.cache.support.SimpleCacheManager">
        <property name="caches">
            <set>
                <bean                        class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean"
             &nbs
        
		

網(wǎng)友評(píng)論