下载ehcache,目前最新版本:ehcache-2.5.1-distribution.tar.gz
提取lib目录下的2个jar包ehcache-core-2.5.1.jar 和 slf4j-api-1.6.1.jar到项目的WEB-INF/lib目录里。
然后再lasspath目录下创建ehcache.xml。配置了一个名为ColorCache的缓存,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache name="ColorCache">
<cache name="colors"
maxElementsInMemory="100"
maxElementsOnDisk="0"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="0"
memoryStoreEvictionPolicy="LFU">
</cache>
</ehcache>
然后就可以在项目里使用这个缓存了。
缓存的使用实例如下:ColorCache.java与ColorDatabase.java
package org.terracotta;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Ehcache;
import net.sf.ehcache.Element;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ColorCache {
private static final CacheManager cacheManager = new CacheManager();
private static final ColorDatabase colorDatabase = new ColorDatabase();
public ColorCache() {
/**/
}
public Color getColor(String name) {
Element elem = getCache().get(name);
if (elem == null) {
Color color = colorDatabase.getColor(name);
if (color == null) { return null; }
getCache().put(elem = new Element(name, color));
}
return (Color) elem.getValue();
}
private Color getCachedColor(String name) {
Element elem = getCache().get(name);
return elem != null ? (Color) elem.getValue() : null;
}
public String[] getColorNames() {
@SuppressWarnings("unchecked")
Iterator<String> keys = ((List<String>) getCache().getKeys()).iterator();
List<String> list = new ArrayList<String>();
while (keys.hasNext()) {
String name = keys.next();
if (getCachedColor(name) != null) {
list.add(name);
}
}
return list.toArray(new String[list.size()]);
}
public long getTTL() {
return getCache().getCacheConfiguration().getTimeToLiveSeconds();
}
public long getTTI() {
return getCache().getCacheConfiguration().getTimeToIdleSeconds();
}
public int getSize() {
return getCache().getSize();
}
private Ehcache getCache() {
return cacheManager.getEhcache("colors");
}
}
文件:ColorDatabase.java
package org.terracotta;
import java.awt.Color;
import java.util.Map;
import java.util.HashMap;
public class ColorDatabase {
private static final Map<String, Color> colorMap = new HashMap<String, Color>();
static {
colorMap.put("red", Color.red);
colorMap.put("blue", Color.blue);
colorMap.put("green", Color.green);
colorMap.put("white", Color.white);
colorMap.put("black", Color.black);
colorMap.put("lightGray", Color.lightGray);
colorMap.put("gray", Color.gray);
colorMap.put("darkGray", Color.darkGray);
colorMap.put("pink", Color.pink);
colorMap.put("orange", Color.orange);
colorMap.put("yellow", Color.yellow);
colorMap.put("magenta", Color.magenta);
colorMap.put("cyan", Color.cyan);
}
public ColorDatabase() {
/**/
}
public Color getColor(String name) {
Color color = colorMap.get(name);
if(color == null) {
return null;
}
try {
Thread.sleep(3000);
} catch(Exception e) {/**/}
return color;
}
}
整个项目源代码下载地址:http://download.csdn.net/detail/bits00/4046472
在项目里我把上面这个类ColorCache的所有方法发布成webservie,方便测试其中的各个方法。
ehcache入门使用
最新推荐文章于 2021-02-13 11:25:35 发布