導言
從 Spring 1.1.1 開始,EHCache 就作為一種通用緩存解決方案集成進 Spring。
我將示范攔截器的例子,它能把方法返回的結果緩存起來。
利用 Spring IoC 配置 EHCache
在 Spring 里配置 EHCache 很簡單。你只需一個 ehcache.xml 文件,該文件用于配置 EHCache:
攔截器將使用 ”org.taha.cache.METHOD_CACHE” 區域緩存方法返回結果。下面利用 Spring IoC 讓 bean 來訪問這一區域。
構建我們的 MethodCacheInterceptor
該攔截器實現org.aopalliance.intercept.MethodInterceptor接口。一旦運行起來(kicks-in),它首先檢查被攔截方法是否被配置為可緩存的。這將可選擇性的配置想要緩存的 bean 方法。只要調用的方法配置為可緩存,攔截器將為該方法生成 cache key 并檢查該方法返回的結果是否已緩存。如果已緩存,就返回緩存的結果,否則再次調用被攔截方法,并緩存結果供下次調用。
org.taha.interceptor.MethodCacheInterceptor
MethodCacheInterceptor 代碼說明了:
默認條件下,所有方法返回結果都被緩存了(methodNames 是 null) 緩存區利用 IoC 形成 cacheKey 的生成還包括方法參數的因素(譯注:參數的改變會影響 cacheKey)使用 MethodCacheInterceptor
下面摘錄了怎樣配置 MethodCacheInterceptor:
譯注
夏昕所著《Hibernate 開發指南》,其中他這樣描述 EHCache 配置文件的: