Java緩存學習之六:Spring單獨使用EhCache


 

  通過在Application Context中配置EhCacheManagerFactoryBean和EhCacheFactoryBean,我們就可以把對應的EhCache的CacheManager和Ehcache對象注入到其它的Spring bean對象中進行使用。

1、EhCacheManagerFactoryBean

     EhCacheManagerFactoryBean是Spring內置的一個可以產生Ehcache的CacheManager對象的FactoryBean。其可以通過屬性configLocation指定用於創建CacheManager的Ehcache配置文件的路徑,通常是ehcache.xml文件的路徑。如果沒有指定configLocation,則將使用默認位置的配置文件創建CacheManager,這是屬於Ehcache自身的邏輯,即如果在classpath根路徑下存在ehcache.xml文件,則直接使用該文件作為Ehcache的配置文件,否則將使用ehcache-xxx.jar中的ehcache-failsafe.xml文件作為配置文件來創建Ehcache的CacheManager。此外,如果不希望創建的CacheManager使用默認的名稱(在ehcache.xml文件中定義的,或者是由CacheManager內部定義的),則可以通過cacheManagerName屬性進行指定。下面是一個配置EhCacheManagerFactoryBean的示例。

   <!-- 定義CacheManager -->

   <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">

      <!-- 指定配置文件的位置 -->

      <property name="configLocation" value="/WEB-INF/config/ehcache.xml"/>

      <!-- 指定新建的CacheManager的名稱 -->

      <property name="cacheManagerName" value="cacheManager"/>

   </bean>

 

2、EhCacheFactoryBean

       EhCacheFactoryBean是用來產生Ehcache對象的FactoryBean。EhcacheFactoryBean兩個很重要的屬性:

cacheManager屬性,指定用來管理Ehcache的CacheManager對象,若未指定則將通過CacheManager.create()獲取或創建默認的CacheManager。

另一個重要屬性是cacheName,其表示當前EhCacheFactoryBean對應的是CacheManager中的哪一個Ehcache對象,若未指定默認使用beanName作為cacheName。若CacheManager中不存在對應cacheName的Ehcache對象,則將使用CacheManager創建一個名為cacheName的Cache對象。其他屬性:timeToIdle、timeToLive等屬性指定要創建的Cache的對應屬性,注意這些屬性只對新建的Cache才起作用,對已經存在的Cache將不起作用。此外還有幾個屬性是對不管是已經存在還是新創建的Cache都起作用的屬性:statisticsEnabled、sampledStatisticsEnabled、disabled、blocking和cacheEventListeners,其中前四個默認都是false,最后一個表示為當前Cache指定CacheEventListener。示例:

 

   <!-- 定義一個Ehcache -->

   <bean id="userCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">

      <property name="cacheName" value="user"/>

      <property name="cacheManager" ref="cacheManager"/>

   </bean>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM