当我使用Ehcache时,有些东西我无法理解,这意味着元素已过期,如果元素过期则意味着缓存将清除元素并且它将不再存在?或者它也存在但你无法得到它。这是我写的代码,我从xml获取数据并像这样判断
public Object get(Class classObj, String nodeName, String fileName) {
Object obj = null;
if (!ehcacheVindicator.getCache().isDisabled()&&ehcacheVindicator.getCache().isKeyInCache(nodeName)) {
Element element = ehcacheVindicator.getCache().get(nodeName);
if (ehcacheVindicator.getCache().isExpired(element)){
obj = readObject(classObj, fileName, nodeName);// read object from xml file
updateObject(nodeName,obj);
}
else
obj = getObject(nodeName); // get object from cache
} else {
obj = readObject(classObj, fileName, nodeName); // read object from
// xml file
addObject(nodeName, obj); // add object to cache
}
return obj;
}
无法告诉我这是不是错了?
答案 0 :(得分:1)
您可以使用属性timeToLiveSeconds
(在xml配置文件中)将ehcache设置为在一段有限的时间内缓存对象
timeToLiveSeconds: 设置元素到期前的生存时间。 即创建时间和元素之间的最长时间 到期。 仅在元素不是永恒时使用。 可选属性。值为0意味着和Element可以生存 无穷。 默认值为0.
更多信息here