ehcache 缓存实例

1.先在src创建ehcache.xml配置文件

<ehcache>

<diskStore path="java.io.tmpdir"/>

<defaultCache
    maxElementsInMemory="10000"
    eternal="false"
    timeToIdleSeconds="600" 
    timeToLiveSeconds="600" 
    overflowToDisk="true"
/>
 
<cache name="randomObjCache"
    maxElementsInMemory="10000"
    eternal="false"
    timeToIdleSeconds="600" 
    timeToLiveSeconds="600" 
    overflowToDisk="true"
   
/>

</ehcache>

 2.在context中引入cacheManage相关配置,以便在bean中引用cache,这里我在applicationContext-dao.xml中加入

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
	
	<bean id="randomDao" class="com.zjr.dao.impl.RandomDaoImpl">
		<property name="sqlMapClient" ref="sqlMapClient"/>
	</bean>

	<!-- ###################  Cache  ############################ -->
	<bean id="defaultCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
	 
	   <property name="configLocation">
	   		<value>classpath:/ehcache.xml</value>
	   </property>
	    <!-- 
	   <property name="configLocation"
			value="/WEB-INF/conf/ehcache.xml" />
		-->
	</bean>
	
	<bean id="randomCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
	  <property name="cacheManager">
	    <ref local="defaultCacheManager"/>
	  </property>
	  <property name="cacheName">
	    <value>randomObjCache</value>
	  </property>
	</bean>
	<bean id="cacheRandomDao" class="com.zjr.dao.impl.CacheRandomDaoImpl">
		<property name="target" ref="randomDao"></property>
		<property name="cache" ref="randomCache"></property>
	</bean>
	<!-- ###################  Cache  ############################ -->
	
</beans>

 3.CacheRandomDaoImpl 中使用

	private RandomDao target;
	private Cache cache;
	private final static String cacheKey = "randomObjCache"; 
	public void setCache(Cache cache) {
		this.cache = cache;
	}
	
	public List<RandomObj> getCacheRandomObj(Integer flag) {
		// TODO Auto-generated method stub
		Element element = cache.get(cacheKey);
		
		if (element == null) {
			// 当cache中没有数据的时候,从target中取数据,target为实体DAO	
			List<RandomObj> result = target.getCacheRandomObj(flag);
			System.out.println("set into cache");
			// cache method result
			element = new Element(cacheKey, (Serializable) result);
			cache.put(element);
                                        //测试CACHE
//			for(int i=0;i<10000;i++){
//				element = new Element(cacheKey+i, new RandomObj());
//				cache.put(element);
//			}
			
		}
		System.out.println("out cache");
			
		return (List<RandomObj>)element.getValue();
	}

 ehcache.xml中的相关属性可参照
http://catastiger.iteye.com/blog/656653

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值