EhCache应用之单独使用

    EhCache其实底层的实现就是static方法,我声名一个变量为static,实际上就把这个变量放在了缓存中,只不过EhCahce等缓存框架是封装了一层,提供了一些实用的方法并且可以进行一些配置。

     下面介绍一个简单的实用EhCache的例子。

     代码分成4个部分。

 

public class TestMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		EhcacheUtil eUtil = new EhcacheUtil();
		String one = eUtil.getPrame("1");
		
		System.out.println(one);
		

	}

}

 

 

public class EhcacheUtil {

	private Cache cache ;
	
	private void loadPrame(){
		try {
			CacheManager cm = CacheManager.create("src/com/x/ehcache.xml");
			
//			cache = new Cache("b", 5000, false, false, 5, 2);
//			cm.addCache(cache);
//			cache = cm.getCache("b");
			
			cache = cm.getCache("a");
			
			PrameUtil pUtil = new PrameUtil();
			
			for(int i=1;i<6;i++){
				cache.put(new Element(String.valueOf(i),pUtil.getPrame(String.valueOf(i))));
			}
			
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (CacheException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	
	
	public String getPrame(String key){
		String value = "";
		try {
			if(cache == null){loadPrame();}
			Element el = cache.get((String)key);
			if(el == null){loadPrame();el = cache.get((String)key);}
			if(el == null){System.out.println("没有");}
			else{value = el.getValue().toString();}
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (CacheException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return value;
	}
}
 

 

public class PrameUtil {

	public String getPrame(String key){
		String value = "";
		
		InputStream is = this.getClass().getClassLoader().getResourceAsStream("com/p/p.properties");
		Properties p = new Properties();
		try {
			p.load(is);
			value = p.getProperty(key);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return value;
	}
}
 

    ehcache.xml:

 

 

<ehcache>
	<defaultCache 
	maxElementsInMemory="1000" 
	eternal="true" 
	timeToIdleSeconds="3600" 
	timeToLiveSeconds="3600" 
	overflowToDisk="true" 
	/>
	<cache name="a" 
	maxElementsInMemory="1000" 
	eternal="true" 
	timeToIdleSeconds="3600" 
	timeToLiveSeconds="3600" 
	overflowToDisk="false"
	/>
</ehcache>

 

     执行结果,输出“a"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值