通过上面的文章可以知道如何缓存一个方法的返回值,但是如果想缓存任意一个对象,或者根据一定条件才决定 要不要读取缓存怎么办?那就只能通过手动编程的方式了,即调用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;
}
}
分享到:
相关推荐
1.解压缩到目录下,复制ehcache-monitor-kit-1.0.0\lib\ehcache-probe-1.0.0.jar包到application的web-inf/lib目录下 2.将以下配置copy的ehcache.xml文件的ehcache标签中,注:上述链接中说的配置少写了个probe包名...
具有集群支持的 Ehcache 3(ehcache-clustered-3.8.1-kit.zip)
ehcache缓存jar(ehcache-core-2.4.6.jar+ehcache-web-2.0.4.jar)
ehcache-core-2.6.10.jar依赖包 MyBatiesEhCache二级缓存 Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个...
ehcache1.6,ehcache-web-2.0.4,slf4j-api-1.7.21.jar 不好意思,缺点分用。。
赠送jar包:ehcache-web-2.0.4.jar; 赠送原API文档:ehcache-web-2.0.4-javadoc.jar; 赠送源代码:ehcache-web-2.0.4-sources.jar; 赠送Maven依赖信息文件:ehcache-web-2.0.4.pom; 包含翻译后的API文档:...
赠送jar包:ehcache-core-2.6.11.jar; 赠送原API文档:ehcache-core-2.6.11-javadoc.jar; 赠送源代码:ehcache-core-2.6.11-sources.jar; 赠送Maven依赖信息文件:ehcache-core-2.6.11.pom; 包含翻译后的API文档...
赠送jar包:ehcache-core-2.6.11.jar; 赠送原API文档:ehcache-core-2.6.11-javadoc.jar; 赠送源代码:ehcache-core-2.6.11-sources.jar; 赠送Maven依赖信息文件:ehcache-core-2.6.11.pom; 包含翻译后的API文档...
Mybatis-ehcache 1.2.1源码(ehcache-cache-mybatis-ehcache-1.2.1.tar.gz)
赠送jar包:ehcache-3.9.9.jar; 赠送原API文档:ehcache-3.9.9-javadoc.jar; 赠送源代码:ehcache-3.9.9-sources.jar; 赠送Maven依赖信息文件:ehcache-3.9.9.pom; 包含翻译后的API文档:ehcache-3.9.9-javadoc-...
Mybatis-ehcache 1.2.1源码(ehcache-cache-mybatis-ehcache-1.2.1.zip)
含有 三个版本:ehcache-core-2.6.11 ;ehcache-core-2.6.9;ehcache-core-2.5.0
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 主要的特性有: 1. 快速. 2. 简单. 3. 多种缓存策略 4. 缓存数据有两级:内存和磁盘,因此无需担心...
赠送jar包:shiro-ehcache-1.4.0.jar; 赠送原API文档:shiro-ehcache-1.4.0-javadoc.jar; 赠送源代码:shiro-ehcache-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-ehcache-1.4.0.pom; 包含翻译后的API文档...
ehcache-spring-annotations-1.2.0.jar
Ehcache 2.10.8(bigmemory-max-4.3.8.4.2.tar.gz)
用于ehcache-core-ee-2.4.1 企业级功能。比如ehcache的offheapsize设置
ehcache-spring-annotations-1.1.2.jar
它大大简化了在Spring应用中基于业界使用广泛的Ehacche-2.0版本实现缓存的技术,1.1.2版本的ehcache-spring-annotations刚刚发布不久,在本文中,我将会介绍如何在一个web工程时使用ehcache-spring-annotations实现...
赠送jar包:ehcache-web-2.0.4.jar; 赠送原API文档:ehcache-web-2.0.4-javadoc.jar; 赠送源代码:ehcache-web-2.0.4-sources.jar; 赠送Maven依赖信息文件:ehcache-web-2.0.4.pom; 包含翻译后的API文档:...