ehcache监听器的用法

2014-11-24 11:07:20 · 作者: · 浏览: 0
[java]
EhCache event listener for preventing caching of null values in data store(ehcache监听器,坚挺value为null时清除)
[java]
[java]
ehcache的配置
>
监听工厂类
package com.pzoom.crabman.store;
/**
* Created with IntelliJ IDEA.
* User: Administrator
* Date: 13-1 -7
* Time: 上午10:33
* To change this template use File | Settings | File Templates.
*/
import java.util.Properties;
import net.sf.ehcache.event.CacheEventListener;
import net.sf.ehcache.event.CacheEventListenerFactory;
public class NotNullCacheEventListenerFactory extends CacheEventListenerFactory {
@Override
public CacheEventListener createCacheEventListener( final Properties properties) {
return NotNullCacheEventListener.INSTANCE;
}
}
监听实现类
package com.pzoom.crabman.store;
/**
* Created with IntelliJ IDEA.
* User: Administrator
* Date: 13-1 -7
* Time: 上午10:32
* To change this template use File | Settings | File Templates.
*/
import net.sf.ehcache.CacheException;
import net.sf.ehcache.Ehcache;
import net.sf.ehcache.Element;
import net.sf.ehcache.event.CacheEventListener;
public class NotNullCacheEventListener implements CacheEventListener {
public static final CacheEventListener INSTANCE = new NotNullCacheEventListener();
@Override
public void notifyElementRemoved(final Ehcache cache, final Element element) throws CacheException {
}
@Override
public void notifyElementPut(final Ehcache cache, final Element element) throws CacheException {
removeIfNull(cache, element);
}
@Override
public void notifyElementUpdated(final Ehcache cache, final Element element) throws CacheException {
removeIfNull(cache, element);
}
private void removeIfNull(final Ehcache cache, final Element element) {
if (element.getObjectValue() == null) {
cache.remove(element.getKey());
}
}
@Override
public void notifyElementExpired(final Ehcache cache, final Element element) {
}
@Override
public void notifyElementEvicted(final Ehcache cache, final Element element) {
}
@Override
public void notifyRemoveAll(final Ehcache cache) {
}
@Override
public void dispose() {
}
@Override
public Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException("Singleton instance");
}
}