我们新建一个Maven项目,
pom.xml里引入 ehcache支持;
1
2
3
4
5
|
< dependency > < groupId >net.sf.ehcache</ groupId > < artifactId >ehcache</ artifactId > < version >2.10.3</ version > </ dependency > |
ehcache.xml配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<? xml version = "1.0" encoding = "UTF-8" ?> < ehcache > <!-- 磁盘存储:将缓存中暂时不使用的对象,转移到硬盘,类似于Windows系统的虚拟内存 path:指定在硬盘上存储对象的路径 --> < diskStore path = "C:\ehcache" /> <!-- defaultCache:默认的缓存配置信息,如果不加特殊说明,则所有对象按照此配置项处理 maxElementsInMemory:设置了缓存的上限,最多存储多少个记录对象 eternal:代表对象是否永不过期 overflowToDisk:当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中 --> < defaultCache maxElementsInMemory = "100" eternal = "true" overflowToDisk = "true" /> < cache name = "a" maxElementsInMemory = "100" eternal = "true" overflowToDisk = "true" /> </ ehcache > |
package com.justin.hello;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
/**
* ehcache缓存框架使用
* @author Administrator
*
*/
public class EhcacheTest {
public static void main(String[] args) {
//通过管理管理器读取缓存配置
CacheManager manager=CacheManager.create("./src/main/resources/ehcache.xml");
//获取指定的缓存
Cache cache=manager.getCache("aaa");
//实例化一个元素
Element element=new Element("justin====","茅台镇酱香酒");
//添加元素到缓存中
cache.put(element);
//根据key值获取缓存元素
Element element2=cache.get("justin====");
System.out.println(element2);
System.out.println(element2.getObjectValue());
Element element3=cache.get("justin");
System.out.println(element3);
System.out.println(element3.getObjectValue());
//刷新缓存
cache.flush();
//关闭缓存管理器
manager.shutdown();
}
}
ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<!--
磁盘存储:将缓存中暂时不使用的对象,转移到硬盘,类似于Windows系统的虚拟内存
path:指定在硬盘上存储对象的路径
-->
<diskStore path="C:\ehcache" />
<!--
defaultCache:默认的缓存配置信息,如果不加特殊说明,则所有对象按照此配置项处理
maxElementsInMemory:设置了缓存的上限,最多存储多少个记录对象
eternal:代表对象是否永不过期
overflowToDisk:当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中
-->
<defaultCache
maxElementsInMemory="100"
eternal="true"
overflowToDisk="true"/>
<!--
maxElementsInMemory设置成1,overflowToDisk设置成true,只要有一个缓存元素,就直接存到硬盘上去
eternal设置成true,代表对象永久有效
maxElementsOnDisk设置成0 表示硬盘中最大缓存对象数无限大
diskPersistent设置成true表示缓存虚拟机重启期数据
-->
<cache
name="aaa"
maxElementsInMemory="1"
eternal="true"
overflowToDisk="true"
maxElementsOnDisk="0"
diskPersistent="true"/>
</ehcache>