Ehcache(五): cache.put(element)做了些什么?

1, checkStatus(): if (!status.equals(Status.STATUS_ALIVE))

2,element.resetAccessStatistics():

lastAccessTime=0;

nextToLastAccessTime=0;

hitCount=0;

怎么把一个element里的这些信息都给置成了0?

3,elementExists=isElementInMemory(key)||isElementOnDisk(key);

判断要put进来的element是否已存在.为什么不分是Memory和Disk呢?

Memory中用了Map来模拟内存,

disk判断时:diskElements.containsKey(key)||spool.containsKey(key).

privateMapdiskElements=Collections.synchronizedMap(newHashMap());

privateMapspool=newHashMap();

怎么一点也看不出与disk相关的信息:如,IO,stream等.

4,backOffIfDiskSpoolFull

看来这个方法里并不真正做back?那么真正的backOff是在什么方法里做的?

5,真正的put

怎么类MemoryStore里的doPut方法是空的?

7,registeredEventListeners.notifyElementXXX方法:

这些监听是怎么设置的?

相关推荐