Spring Module---cache
項目需要緩存,google了一下,發現spring module有現成的東西可用,隨即拿來看看。發現還是比較好用的。改cache采用了aop的方式進行cache的寫入和刷出。使用spring風格,上手容易。
系統負載不高,因此對于該緩存方法的性能等等不做評價,目前滿足需要。
使用方法:
有這么幾個概念需要提前知道1.XXCacheFacade,比如如果是oscache,那么XX就是oscachefacade.該類負責緩存的寫入和刷出






里面的cacheManager必須要有,改類負責提供底層具體的cache實現,比如oscache或者EHcache等。
2.MethodMapCachingInterceptor這個攔截器是官方提供的同類型的攔截器之一,根據方法名,參數匹配攔截。









注意cachingModels。有兩種方式寫法,一種是上面看到的使用props另一種是使用Map.在有些情況下只能使用Map方式,下面解釋















尤其當groups(對于oscache來說是groups)的值不止一個的時候,就需要使用map的方式。
否則不生效(也許還有什么我沒有注意到).另外需要注意的是對于model來說他的key很重要。有以下需要注意:如果AImpl是A接口的實現類,而且你在其他地方使用時都是用A接口來聲明的,那么key就必須寫成接口的全限定名比如:com.company.jncz.A.getXX,否則無法識別。
對于與cachingModel相對應的flushingModel寫法是類似的,參考api很容易寫出來。
最后













這些不做介紹。
總之比較簡單。這兩天感冒,昏昏沉沉,不知道有沒有表達清楚。。。。
自己看了一眼,的確沒說清楚,要清楚的幾個概念是cacheFacade.CachingModel.FlushingModel.CachingInterceptor.FlushingInterceptor.這些算是比較重要的。其他aop內容略。caching攔截器攔截某方法,根據cachingModel定義的規則由cacheFacade將之放入cache。flushing攔截器攔截到某方法,根據flushingModel定義的規則由cacheFacade將對應的cache清除。嗯,基本上流程就這樣子了。
posted on 2007-07-16 17:01 paulwong 閱讀(1397) 評論(0) 編輯 收藏 所屬分類: J2EE