EhCache的简单使用Demo

来源:互联网 发布:各种技术软件 编辑:程序博客网 时间:2024/05/16 14:55

1、首先要有个工程
new->maven project;
2、下载需要的jar包

<dependency>        <groupId>net.sf.ehcache</groupId>        <artifactId>ehcache</artifactId>        <version>2.10.1</version>      </dependency>

3、EhCache核心配置文件
ehcache.xml:

<?xml version="1.0" encoding="UTF-8"?><ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">      <diskStore path="java.io.tempdir" />      <defaultCache maxElementsInMemory="1000" eternal="false"          timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />      <cache name="ehcacheName" maxElementsInMemory="10000"          eternal="false" timeToIdleSeconds="300000" timeToLiveSeconds="600000"          overflowToDisk="true" />  </ehcache>

diskStore path:配置写磁盘文件
defaultCache 标签:配置默认cache
cache :配置自定义cache
各种详细参数在这里就不做介绍了,下一篇文章可能会单独介绍。

4、根据自我需求建立对应工具类
EhcacheUtil.java

import java.net.URL;import net.sf.ehcache.Cache;import net.sf.ehcache.CacheManager;import net.sf.ehcache.Element;public class EhcacheUtil {    private static final String path = "/ehcache.xml";    private URL url;    private CacheManager manager;    private static EhcacheUtil ehCache;    private EhcacheUtil(String path) {         url = getClass().getResource(path);         manager = CacheManager.create(url);     }    public static EhcacheUtil getInstance() {         if (ehCache== null) {             ehCache= new EhcacheUtil(path);         }         return ehCache;     }    public void put(String cacheName, String key, Object value) {         Cache cache = manager.getCache(cacheName);         Element element = new Element(key, value);         cache.put(element);     }    public Object get(String cacheName, String key) {         Cache cache = manager.getCache(cacheName);         Element element = cache.get(key);         return element == null ? null : element.getObjectValue();     }    public Cache get(String cacheName) {         return manager.getCache(cacheName);     }    public void remove(String cacheName, String key) {         Cache cache = manager.getCache(cacheName);         cache.remove(key);     }}
构造方法和getIntance()保证了在程序运行过程中无论多少次实例化工具类,只会存在一个EhcacheUtil对象。Ehcache的使用在于put与get,对应的方法也写到工具类中,可以直接通过工具类对象直接调用。path指定的是resource目录下的ehcache.xml文件,也可以自己指定路径。

5、一个小小的测试程序
Test.java

public class Test {    public static void main(String[] args) {        EhcacheUtil ehcacheUtil = EhcacheUtil.getInstance();        List<String> list =new ArrayList<String>();        list.add("1");        list.add("2");        list.add("3");        list.add("4");        list.add("5");        list.add("6");        ehcacheUtil.put("ehcacheName", "key", list);        @SuppressWarnings("unchecked")        List<String> value = (List<String>) ehcacheUtil.get("ehcacheName", "key");        System.out.println(value.size());    }  }

结果显示:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.6

进行到这一步,就证明你的Ehcache基本可以使用了,具体的配置详细还需要深入研究,敬请期待下一篇有关介绍Ehcache的配置详细。