我正在尝试EhCache
在我的项目中使用 Tomcat 6。我使用的 EhCache 是 1.4 版,因为它已经在我的 Hibernate 项目中使用。我已经编写了自己的自定义 CacheEventListener(包括在下面),除了notifyElementExpired()
. 似乎notifyElementExpired()
只有在我向缓存中添加其他内容时才会调用它。在旁注中,notifyElementPut()
被调用了。
有人可以提出解决方案吗?
public class EhCacheEventListener implements CacheEventListener {
private Logger log4j =
LoggerFactory.getLogger(this.getClass().getPackage().getName());
public void notifyElementRemoved(Ehcache cache, Element element) throws CacheException {
log4j.debug("cache element removed---->"+element.getKey());
}
public void notifyElementPut(Ehcache cache, Element element) throws CacheException {
log4j.debug("cache element put---->"+element.getKey());
}
public void notifyElementUpdated(Ehcache cache, Element element) throws CacheException {
log4j.debug("cache element updated---->"+element.getKey());
}
@Override
public void notifyElementExpired(Ehcache cache, Element element) {
//log4j.debug("Element creation time is "+element.getCreationTime());
log4j.debug("cache element expired---->"+element.getKey());
//log4j.debug("Element expiry time is "+element.getExpirationTime());
}
@Override
public void notifyElementEvicted(Ehcache cache, Element element) {
log4j.debug("cache element evicted---->"+element.getKey());
}
public void notifyRemoveAll(Ehcache cache) {}
public void dispose() {}
public Object clone(){
throw new UnsupportedOperationException("Not supported yet.");
}
}