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>

posted @ 2016-11-04 14:37  cac2020  阅读(2796)  评论(0编辑  收藏  举报