`
lastsoul
  • 浏览: 32940 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ehcache缓存对象(三)-手动编程

    博客分类:
  • WEB
阅读更多
通过上面的文章可以知道如何缓存一个方法的返回值,但是如果想缓存任意一个对象,或者根据一定条件才决定 要不要读取缓存怎么办?那就只能通过手动编程的方式了,即调用cache对象的put,get等API。
实现方式就是把cache的bean注入到具体的方法中。比如http://lastsoul.iteye.com/admin/blogs/2246566文章中的simpleCache对象
package com.temobi.cache.service.Impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.temobi.cache.service.ICacheService;

import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
	
/**
* 功能/模块
* @author  
* @version 1.0 2015年9月24日
* 类描述  
*/

@Service
public class EhCacheImpl implements ICacheService {

	@Resource(name="simpleCache")
	private Cache cache;
	 
    public void setCache(Cache cache) {
        this.cache = cache;
    }

	public Cache getCache() {
		return cache;
	}

	/* (non-Javadoc)
	 * @see com.temobi.cache.CacheInterface#put(java.lang.String, java.lang.Object)
	 */
	@Override
	public void put(String cacheKey, Object cacheValue) {
		Element element = new Element(cacheKey,cacheValue);
		cache.put(element);
	}

	/* (non-Javadoc)
	 * @see com.temobi.cache.CacheInterface#get(java.lang.String)
	 */
	@Override
	public Object get(String cacheKey) {
		Element element = cache.get(cacheKey);
		if(element==null) return null;
		return element.getObjectValue();
	}

	/* (non-Javadoc)
	 * @see com.temobi.cache.CacheInterface#contains(java.lang.String)
	 */
	@Override
	public boolean contains(String cacheKey) {
		Element element = cache.get(cacheKey);
		return element==null?true:false;
	}

	/* (non-Javadoc)
	 * @see com.temobi.cache.CacheInterface#remove(java.lang.String)
	 */
	@Override
	public boolean remove(String cacheKey) {
		return cache.remove(cacheKey);
		
	}

	/* (non-Javadoc)
	 * @see com.temobi.cache.CacheInterface#replace(java.lang.String)
	 */
	@Override
	public boolean replace(String cacheKey, Object cacheValue) {
		Element old = cache.get(cacheKey);
		Element element = new Element(cacheKey,cacheValue);
		return cache.replace(old,element);
		/*System.out.println(cache.replace(element));
		return true;*/
	}

	/* (non-Javadoc)
	 * @see com.temobi.cache.CacheInterface#getKeys(java.lang.String)
	 */
	@Override
	public List<Object> getKeys() {
		List<Object> list=cache.getKeys();
		return list;
	}

}



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics