缓存之EHCache(第二个记录)

四、单独使用EHCache

1.创建CacheManager (net.sf.ehcache.CacheManager)

(1)使用默认配置文件创建

CacheManager manager = CacheManager.create();

(2)使用指定配置文件创建

CacheManager manager = CacheManager.create("src/config/ehcache.xml");

(3)从classpath找寻配置文件并创建

URL url = getClass().getResource("/anothername.xml");
CacheManager manager = CacheManager.create(url);

(4)通过输入流创建

InputStream fis = new FileInputStream(new File("src/config/ehcache.xml").getAbsolutePath());
try { 
    manager = CacheManager.create(fis);
 } finally { 
    fis.close(); 
}

2.创建Caches (net.sf.ehcache.Cache)

(1)取得配置文件中预先 定义的sampleCache1设置,生成一个Cache

Cache cache = manager.getCache("sampleCache1");

(2)设置一个名为test 的新cache,test属性为默认

CacheManager manager = CacheManager.create();
manager.addCache("test");

(3)设置一个名为test 的新cache,并定义其属性

CacheManager manager = CacheManager.create();
Cache cache = new Cache("test", 1, true, false, 5, 2);
manager.addCache(cache);

(4)删除cache

CacheManager singletonManager = CacheManager.create();
singletonManager.removeCache("sampleCache1");

3.使用Caches

(1)往cache中加入元素

Element element = new Element("key1", "value1");
cache.put(new Element(element);

(2)从cache中取得元素

Element element = cache.get("key1");

(3)从cache中删除元素

Cache cache = manager.getCache("sampleCache1");
Element element = new Element("key1", "value1");
cache.remove("key1");

4.卸载CacheManager ,关闭Cache

 manager.shutdown();

下附代码。

五、在 Hibernate 中运用EHCache

1、hibernate.cfg.xml中需设置如下:

3系列版本加入

<property name=” hibernate.cache.provider_class”>
    org.hibernate.cache.EhCacheProvider
</property>

EhCacheProvider类位于hibernate3.jar

2.1版本加入

net.sf.ehcache.hibernate.Provider

2.1以下版本加入

net.sf.hibernate.cache.EhCache

 2、在Hibernate3.x中的etc目录下有ehcache.xml的示范文件,将其复制应用程序的src目录下(编译时会把ehcache.xml复制到WEB-INF/classess目录下),对其中的相关值进行更改以和自己的程序相适合。

 3、持久化类的映射文件进行配置

<cache usage="read-write"/>

在<set>标记中设置了<cache usage="read-write"/>,但Hibernate仅把和Group相关的Student的主键id加入到缓存中,如果希望把整个Student的散装属性都加入到二级缓存中,还需要在Student.hbm.xml文件的<class>标记中加入<cache>子标记,如下所示:

<cache usage="read-write" /> <!--cache标记需跟在class标记后-->

 注:SSH中hibernate配置的cache信息

<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>

你可能感兴趣的:(ehcache)