`
刘小小尘
  • 浏览: 65992 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ehcache监听器的用法

 
阅读更多
EhCache event listener for preventing caching of null values in data store(ehcache监听器,坚挺value为null时清除)

ehcache的配置

<cache name="myNonNullCache"

<!-- cache configuration -->

>

<cacheEventListenerFactory class="com.example.cache.NotNullCacheEventListenerFactory" />

</cache>


监听工厂类
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");
    }
}













分享到:
评论

相关推荐

    ehcache.jar及源码

    7. **事件监听(Event Listeners)**:Ehcache支持添加监听器来监控缓存操作,例如缓存项的添加、更新和移除,便于进行相应的业务逻辑处理。 `ehcache-core-2.5.2-sources.jar`则是Ehcache的源代码文件,开发者可以...

    ehcache配置使用详解

    7. **监听接口**:ehcache提供了缓存和缓存管理器的监听接口,便于监控缓存状态和行为。 8. **多实例支持**:允许在同一应用中存在多个缓存管理器实例,每个实例可以管理多个缓存区域,灵活性高。 #### 二、ehcache...

    Ehcache_Hello

    3. **Eviction Listeners**: 可以设置监听器来处理元素移除事件,例如通知系统进行进一步操作。 **Ehcache示例** 在`Ehcache_Hello`这个案例中,开发者可能会创建一个简单的缓存区,并通过API添加、获取和移除缓存...

    ehcache开发工具包

    例如,开发者可以设置缓存的大小、过期策略、缓存更新策略(如LRU、LFU等),以及缓存的事件监听器等。 总结起来,EhCache是一个强大而灵活的缓存解决方案,对于优化Java应用程序的性能具有重要作用。通过提供的...

    ehcache例子

    以上就是Ehcache在Maven项目中的基本使用方法和关键知识点,包括配置、集成、操作缓存、过期策略、事件监听以及分布式缓存的实现。通过熟练掌握这些概念,你可以有效地利用Ehcache提升Java应用的性能。

    ehcache常用API整理

    在本文中,我们将深入探讨Ehcache的一些核心API及其用法。 首先,我们需要引入Ehcache的依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.ehcache &lt;artifactId&gt;ehcache &lt;version&gt;3...

    ehcache 缓存

    3. **缓存更新策略**: 支持缓存更新监听器,当源数据发生变化时,可以自动或手动更新缓存中的对应数据。 **四、Ehcache分布式缓存** 1. **Terracotta服务器**: Ehcache通过集成Terracotta服务器,可以实现跨JVM的...

    EHCache.jar和文档

    7. **缓存事件监听**:通过注册缓存事件监听器,开发者可以监控缓存操作,例如添加、更新、删除等,以便在这些操作发生时执行相应的逻辑。 8. **与Spring框架的集成**:EHCache与Spring框架有良好的整合,可以方便...

    ehcachedemo

    同时,可以设置监听器来在缓存项过期或被移除时触发特定操作。 6. **分布式缓存**:Ehcache支持集群环境下的分布式缓存,通过 Terracotta服务器,多个节点可以共享同一份缓存数据,提高高可用性和读写性能。 7. **...

    ehcache jar包 源码

    6. **缓存事件和监听器**:Ehcache支持监听缓存事件,例如元素添加、更新、移除等。开发者可以通过实现`net.sf.ehcache.event.CacheEventListener`接口来定制监听器,以便在这些事件发生时执行自定义逻辑。 7. **...

    ehCache 使用例子

    ehCache提供了事件监听机制,可以注册监听器来处理这些事件,保持缓存的一致性。 8. **缓存预热**:在系统启动时,将常用的数据加载到缓存中,以减少首次访问的延迟,这被称为缓存预热。可以通过编写特定的预热程序...

    ehcache知识简介

    - **监听器插件化**:通过实现CacheManagerEventListener和CacheEventListener接口,可以轻松添加定制化的缓存管理器监听器和缓存事件监听器。 - **节点发现、冗余器和监听器插件化**:这些组件均支持插件化,允许...

    ehcache jar包

    6. **缓存更新与同步**:当数据库中的数据发生变化时,`ehcache`可以通过监听器或者定时任务来更新缓存中的数据,保持缓存与数据库的一致性。在分布式环境中,`ehcache`还可以通过RMI(远程方法调用)或Terracotta...

    ehcache 测试demo

    此外,可以通过监听器或者手动调用`remove`方法来清理特定的缓存项。 7. **缓存异常处理** 在使用Ehcache过程中,可能会遇到缓存未找到、缓存已满、缓存溢出等情况,需要适当地捕获并处理这些异常,以保证程序的...

    ehcache_doc_2.10.4.zip

    综上所述,"ehcache_doc_2.10.4.zip"文档涵盖了Ehcache的基本概念、配置、使用方法、缓存策略、分布式缓存以及性能管理等多个方面,是开发人员理解和应用Ehcache的重要参考资料。在实践中,根据项目需求,深入阅读和...

    Ehcache官方文档.pdf

    - **发现机制、复制器和监听器插件**:为分布式缓存环境提供了高度定制化的选项。 - **应用持久性**: - **持久化的磁盘存储**:即使虚拟机重启也能保持数据完整性。 - **按需刷新至磁盘**:允许手动触发数据的...

    ehcache官方文档

    - **缓存事件**:Ehcache提供缓存事件监听器,允许在缓存操作前后执行自定义逻辑。 - **Web插件**:Ehcache提供与Web应用服务器的集成,如Tomcat和Jetty,方便监控和管理缓存。 通过深入学习和实践Ehcache的官方...

    spring + ehcache + redis两级缓存

    这通常可以通过设置过期时间、缓存更新事件监听器等方式实现。 4. **代码中使用缓存**: 在业务代码中,我们可以使用Spring的`@Cacheable`、`@CacheEvict`和`@CachePut`注解来声明方法的返回结果应被缓存,清除特定...

    Ehcache参考指南(英文版).pdf

    7. **缓存监听器**:可以注册监听器来监控缓存的添加、更新和删除事件,以便进行其他业务逻辑处理。 **最佳实践** 1. **适当设置缓存大小**:根据应用需求和服务器资源,合理设定缓存的最大容量,避免内存溢出。 ...

Global site tag (gtag.js) - Google Analytics