EHCache 初步使用指南

openkk 13年前
     写的比较初级,后续将加入对配置文件,内存/磁盘存储,优化,虚拟机宕机,日志等的说明    <br /> 1. EHCache 的特点,系统要求及安装    <br /> 是一个纯Java ,过程中(也可以理解成插入式)缓存实现    <br /> Hibernate2.1,Spring支持EHcache嵌入,自我感觉Hibernate2.1 + EHCache 很过瘾。。(测试结果比Hibernate+JCS 好多了)    <br /> 支持多CPU服务器    <br /> 其版本发布前进行了产品级测试    <br /> 支持:运行环境jdk1.2到5版本(源代码编译需1.4或1.5 版本)    <br /> jdk1.4和1.5 版本,需加入apache 的 commons-logging类库 http://jakarta.apache.org/commons/logging.html    <br /> jdk1.2和1.3 版本,需加入commons-collections 2.1 版本 http://jakarta.apache.org/commons/collections.html    <br /> 和 xerces (xml-apis.jar and xercesImpl.jar), 2.5 版本 http://xml.apache.org/xerces2-j/    <br />    <br /> 如果运行环境为IBM JDK1.4版本上的IBM Websphere 5.1,也需加入 commons-collections 类库(如需要)    <br />    <br /> 单独安装Ehcache ,需把ehcache-X.X.jar 和相关类库方到classpath中。    <br /> 如项目已安装了Hibernate2.1 ,则不需要做什么。。直接可以使用Ehcache    <br />    <br /> Cache 存储方式 :内存或磁盘    <br />    <br /> 2. 单独使用 EHCache    <br />    <br /> 使用CacheManager 创建并管理Cache    <br /> 使用默认配置文件创建    <br /> CacheManager manager = CacheManager.create();    <br /> 使用指定配置文件创建    <br /> CacheManager manager = CacheManager.create("src/config/ehcache.xml");    <br /> 从classpathq找寻配置文件并创建    <br /> URL url = getClass().getResource("/anothername.xml");    <br /> CacheManager manager = CacheManager.create(url);    <br /> 通过输入流创建    <br /> InputStream fis = new FileInputStream(new File("src/config/ehcache.xml").getAbsolutePath());    <br /> try {    <br /> manager = CacheManager.create(fis);    <br /> } finally {    <br /> fis.close();    <br /> }    <br />    <br /> 卸载CacheManager ,关闭Cache    <br />    <br /> manager.shutdown();    <br />    <br /> 使用Caches    <br />    <br /> 取得配置文件中预先 定义的sampleCache1设置,生成一个Cache    <br /> Cache cache = manager.getCache("sampleCache1");    <br />    <br />    <br /> 设置一个名为test 的新cache,test属性为默认    <br /> CacheManager manager = CacheManager.create();    <br /> manager.addCache("test");    <br />    <br /> 设置一个名为test 的新cache,并定义其属性    <br /> CacheManager manager = CacheManager.create();    <br /> Cache cache = new Cache("test", 1, true, false, 5, 2);    <br /> manager.addCache(cache);    <br />    <br />    <br /> 往cache中加入元素    <br /> Element element = new Element("key1", "value1");    <br /> cache.put(new Element(element);    <br />    <br />    <br /> 从cache中取得元素    <br /> Element element = cache.get("key1");    <br />    <br />    <br />    <br /> 3. 在 Hibernate 中运用EHCache    <br />    <br /> hibernate.cfg.xml中需设置如下:    <br /> 2.1版本加入    <br /> net.sf.ehcache.hibernate.Provider    <br /> 2.1以下版本加入    <br /> net.sf.hibernate.cache.EhCache    <br />    <br /> 在 Hibernate 映射文件的每个需要Cache的Domain中    <br />    <br /> name="com.somecompany.someproject.domain.Country"    <br /> table="ut_Countries"    <br /> dynamic-update="false"    <br /> dynamic-insert="false"    <br /> &gt;    <br /> ...    <br />    <br />    <br /> 加入类似如下格式信息:    <br />    <br /> 比如:    <br />    <br />    <br /> 然后在ehcache.xml中加入    <br />    <br /> maxElementsInMemory="10000"    <br /> eternal="false"    <br /> timeToIdleSeconds="300"    <br /> timeToLiveSeconds="600"    <br /> overflowToDisk="false"    <br />