EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。

下图是 Ehcache 在应用程序中的位置:

主要的特性有:

1. 快速.
2. 简单.
3. 多种缓存策略
4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题
5. 缓存数据会在虚拟机重启的过程中写入磁盘
6. 可以通过RMI、可插入API等方式进行分布式缓存
7. 具有缓存和缓存管理器的侦听接口
8. 支持多缓存管理器实例,以及一个实例的多个缓存区域
9. 提供Hibernate的缓存实现
10. 等等

http://nakata-yf.iteye.com/blog/23536

EHCache 初步使用指南

HibernateCacheXMLApache配置管理

EHCache 初步使用指南- -

写的比较初级,后续将加入对配置文件,内存/磁盘存储,优化,虚拟机宕机,日志等的说明
1. EHCache 的特点,系统要求及安装
是一个纯Java ,过程中(也可以理解成插入式)缓存实现
Hibernate2.1,Spring支持EHcache嵌入,自我感觉Hibernate2.1 + EHCache 很过瘾。。(测试结果比Hibernate+JCS 好多了)
支持多CPU服务器
其版本发布前进行了产品级测试
支持:运行环境jdk1.2到5版本(源代码编译需1.4或1.5 版本)
jdk1.4和1.5 版本,需加入apache 的 commons-logging类库 http://jakarta.apache.org/commons/logging.html
jdk1.2和1.3 版本,需加入commons-collections 2.1 版本 http://jakarta.apache.org/commons/collections.html
和 xerces (xml-apis.jar and xercesImpl.jar), 2.5 版本 http://xml.apache.org/xerces2-j/

如果运行环境为IBM JDK1.4版本上的IBM Websphere 5.1,也需加入 commons-collections 类库(如需要)

单独安装Ehcache ,需把ehcache-X.X.jar 和相关类库方到classpath中。
如项目已安装了Hibernate2.1 ,则不需要做什么。。直接可以使用Ehcache

Cache 存储方式 :内存或磁盘

2. 单独使用 EHCache

使用CacheManager 创建并管理Cache
使用默认配置文件创建
CacheManager manager = CacheManager.create();
使用指定配置文件创建
CacheManager manager = CacheManager.create("src/config/ehcache.xml");
从classpathq找寻配置文件并创建
URL url = getClass().getResource("/anothername.xml");
CacheManager manager = CacheManager.create(url);
通过输入流创建
InputStream fis = new FileInputStream(new File("src/config/ehcache.xml").getAbsolutePath());
try {
manager = CacheManager.create(fis);
} finally {
fis.close();
}

卸载CacheManager ,关闭Cache

manager.shutdown();

使用Caches

取得配置文件中预先 定义的sampleCache1设置,生成一个Cache
Cache cache = manager.getCache("sampleCache1");

设置一个名为test 的新cache,test属性为默认
CacheManager manager = CacheManager.create();
manager.addCache("test");

设置一个名为test 的新cache,并定义其属性
CacheManager manager = CacheManager.create();
Cache cache = new Cache("test", 1, true, false, 5, 2);
manager.addCache(cache);

往cache中加入元素
Element element = new Element("key1", "value1");
cache.put(new Element(element);

从cache中取得元素
Element element = cache.get("key1");

3. 在 Hibernate 中运用EHCache

hibernate.cfg.xml中需设置如下:
2.1版本加入
net.sf.ehcache.hibernate.Provider
2.1以下版本加入
net.sf.hibernate.cache.EhCache

在 Hibernate 映射文件的每个需要Cache的Domain中

name="com.somecompany.someproject.domain.Country"
table="ut_Countries"
dynamic-update="false"
dynamic-insert="false"
>
...

加入类似如下格式信息:

比如:

然后在ehcache.xml中加入

maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
overflowToDisk="false"
/>

EHCache 初步使用指南相关推荐

  1. java中使用ehache_EHCache 初步使用指南

    EHCache 初步使用指南- - 1. EHCache 的特点,系统要求及安装 是一个纯Java ,过程中(也可以理解成插入式)缓存实现 Hibernate2.1,Spring支持EHcache嵌入 ...

  2. 青云MR集群初步使用指南

    青云和阿里云一样,都是云服务提供商,能为我们提供强大的云端数据存储和处理能力,同时也有很多针对特定应用场景的产品解决方案,收费也合理.接下来我们介绍一下第一次如何使用青云提供的qing MR集群,如何 ...

  3. google protobuf使用

    google protobuf使用 下载的是github上的:https://github.com/google/protobuf If you get the source from github, ...

  4. 所属技术领域技术人员的知识和能力

    这篇文章的观点我很赞同,为防止丢失原文链接,转载至此. 原文链接http://www.nipso.cn/onews.asp?id=19910 以下是原文: 所属技术领域的技术人员,也可称为本领域的技术 ...

  5. 海量电脑资料17CD

    eMule下载 ed2k://|file|电子书库目录.rar|36991|1CCECFE5D299EFBA49045D7DBD6ED891|h=Y63ITWQGOLVNL4BEIEYAWK6EZYD ...

  6. Stripe 银行卡支付功能初步指南(Java)

    Stripe 国外银行卡支付功能指南(Java) 简介 编写这篇文章的目的就是~~没有什么目的.网上关于stripe银行卡支付代码很多,有写得很好的,但是太多太杂了,不系统.所以我就结合项目中实际应用 ...

  7. powerbi使用说明_微软Power BI入门指南(1):Power BI初步介绍

    来源:数据之巅链接:http://www.cnblogs.com/asxinyu/p/Power_BI_GettingStarted_English_Intro.html 我们在前一篇文章微软新神器- ...

  8. python初步入门_Python 入门指南

    Python 入门指南¶ Release:3.6.3 Date:Dec 10, 2017 Python 是一门简单易学且功能强大的编程语言.它拥有高效的高级数据结构,并且能够用简单而又高效的方式进行面 ...

  9. 数据仓库工具箱维度建模权威指南-第一章 数据仓库、商业智能及维度建模初步

    数据仓库和商业智能(Data Warehousing and Business Intelligence, DW/BI),DW/BI 系统的数据结构与标识必须符合业务用户的思维过程和词汇 信息两个目的 ...

最新文章

  1. 一起学设计模式 - 代理模式
  2. LeetCode 167. Two Sum II - Input array is sorted--Python解法
  3. Asp.net中基于Forms验证的角色验证授权[转]
  4. layui 上传图片校验
  5. 解决TypeError: Tensor is unhashable if Tensor equality is enabled. Instead, use tensor.experimental_re
  6. matlab hashset,MATLAB集合操作
  7. python cut函数_一天学会Python Web框架(七)工具函数
  8. ******2:***常用工具排行榜-《百晓生兵器谱》
  9. 生物信息学初学——山大公开课笔记
  10. 网贷魔爪再次伸向大学生,欠款账号真的能注销吗?
  11. 【目标检测】YOLOv3:An Incremental Improvement
  12. Jquery 广告图片轮播切换
  13. RDS-TMC(Traffic Message Channel)蕴藏的商机不可小视
  14. 由DRM引起的ORA-00481错误
  15. java拍照控件焦距问题,干货:监控中如何选择镜头焦距?
  16. 二进制安全之NX绕过方法--ROP技术
  17. 防止网络钓鱼攻击的10种方法...
  18. 51nod 1387 移数字
  19. 用python编写西门子plc程序_snap7读写西门子plc1200步骤(python)
  20. 山东大学往年c语言期末试题及答案,山东大学历年C语言题库.doc

热门文章

  1. iOS之多线程的使用和优缺点比较
  2. 深度学习——02、深度学习入门——卷积神经网络
  3. 大数据WEB阶段(六)MySql详解(二)
  4. 【STM32】DMA详解
  5. python 读取word 题库_Python-docx 读取word.docx内容
  6. 分页携带请求参数_一个值得深思的小问题 请求中的参数值为空要不要携带该参数?...
  7. sql like 绑定变量_码硬解析的改进方法之二使用绑定变量
  8. 穿梭框的list集合 去重
  9. 创建线程时候多参数传递方法及参数改变问题--扫雷辅助(三)
  10. 逆向入门--何为OEP