近期看Ehcache的代码。感觉代码看得还是比较轻松,但是对于整体的把握容易在深入代码的时候而迷失。
于是就大体画了一下Ehcache内部的类图,以此来加深自己对Ehcache实现的理解。
可以看出,Ehcache的核心是CacheManager.
每当对cache进行操作的时候,通过CacheManager获得对应的cache.然后进行对应的操作。
而cache又关联了RegisteredEventListeners(里面包含了一些CacheEventListener,当在cache上有operation发生时,这些listener就被通知。这也是ehcache实现分布式缓存的实现方式。当前ehcache支持三种类型的CacheEventListenr:jms,rmi,jgroup.这也就是ehcache三种分布式缓存的实现方式),于是就实现了cache的统一管理。
而CacheManagerPeerListener的作用是监听其他缓存节点发送过来的消息。
CacheManagerPeerProvider的作用是管理节点(包括节点的注册和列举).
在CacheEventListenr回调的时候,会通过cache获取cachemanager,然后通过cachemanager
获取CacheManagerPeerProvider,从而向其他节点发送消息。
分享到:
相关推荐
此外,EhCache还支持多线程环境下的并发控制,以及分布式缓存的实现,这意味着在分布式系统中,多个节点可以共享和同步同一份缓存数据,从而提高整个系统的响应速度。 在实际应用中,EhCache可以通过XML配置文件...
**描述分析:** 描述部分为空,但通常,Ehcache缓存对象涉及如何创建、管理和配置这些对象以优化内存使用和提高响应速度。博主可能在文章中讨论了Ehcache的实际应用,包括它的配置、API使用以及在实际项目中的最佳...
9. **安全性**:虽然在描述中未提及,但Ehcache还支持安全配置,可以设置访问控制,保护缓存数据的安全。 总的来说,Ehcache是一个功能全面且灵活的缓存解决方案,适用于各种规模的应用场景,从简单的本地缓存到...
2. **WSDL生成**:可以从Java接口或实现自动生成WSDL(Web服务描述语言),使得服务消费者能理解服务接口。 3. **数据绑定**:Axis 提供了Java对象到XML和XML到Java对象的自动转换。 4. **部署灵活性**:可以将服务...
8. **API简单易用**:Ehcache提供了丰富的Java API,使得开发者可以方便地进行缓存的添加、删除、更新和检索操作。 在实际应用中,Ehcache通常与Spring框架集成,以实现更便捷的缓存管理。例如,通过Spring的`@...
12. **API集成**:Ehcache提供了丰富的API,开发者可以通过简单的API调用来集成到自己的应用程序中,如`CacheManager.create()`创建缓存管理器,`Cache.put()`添加缓存项等。 Ehcache作为一个强大的缓存解决方案,...
【描述】"使用spring对缓存ehcache进行管理"表明我们将讨论如何通过Spring框架来配置和控制Ehcache的使用。Spring 提供了 Cache Abstraction,使得集成各种缓存系统变得简单,其中包括Ehcache。 首先,要使用Spring...
描述中提到的“自己封装的一个jar包实现了简单的分页功能”,这通常意味着开发者创建了一个通用的分页工具类或服务,用于处理数据查询时的分页逻辑。分页是大型应用程序中常见的需求,它可以减少一次性加载大量数据...
本文首先对系统实现的详细方案和相关技术进行了概述,对SSH、ExtJS和EHCache等技术在系统中所承担的技术角色进行了描述。然后从系统的需求出发,对系统的功能性和非功能性的需求进行了分析,在此基础上,提出了系统...
虽然描述中提到这个项目只有几个简单的页面,没有复杂的特效,但其背后涉及的原理和技术点仍然相当广泛,包括SSM框架的协同工作、Shiro的安全机制、以及Ehcache的使用等。理解这些知识点对于提升Java Web开发的安全...
3. **体积小巧**:官方将其描述为“small footprint”,即发布版本通常小于 2MB,例如 V2.2.3 版本仅为 668KB。 4. **轻量化**:Ehcache 的核心组件仅依赖于 slf4j 日志框架,没有额外的依赖。 5. **易于扩展**...
- 配置应用的上下文路径和服务描述符,如`ejb-jar.xml`和`jboss-ejb3.xml`,尽管EJB 3.0倾向于减少XML配置。 6. **测试与调试**: - 使用JUnit和Mockito等工具对EJB进行单元测试,确保业务逻辑的正确性。 - 利用...
这个“hibernate_first”压缩包提供了一个适合初学者的简单实例,帮助理解Hibernate的基础用法。以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,...
源码描述: 一、源码介绍 使用ssh,mysql实现。bos.sql里面存放的是sql建表语句。 二、主要功能 - 每个用户对应不同的角色,每个角色对应有不同的权限,用户登陆需要认证,访问action时hi需要授权(动态从数据库查...
本文将深入探讨Java Cache的概念,以及如何在实际项目中实现一个简单的缓存系统。 首先,缓存的主要目标是减少对后端系统的负载,例如数据库,通过将常用数据存储在内存中,从而快速响应请求。在Java中,我们可以...
在J2EE中,部署描述符(Deployment Descriptor)是配置系统的重要文件,它定义了应用的组件、安全性、资源和其他运行时属性。此外,JNDI(Java Naming and Directory Interface)用于查找和绑定应用中的资源,如数据...
在IT行业中,面向切面编程(Aspect Oriented Programming,AOP)是一种强大的设计模式,它允许程序员将关注点从核心业务逻辑中分离出来,比如...同时,通过EhCache的配置,我们可以实现高效的缓存策略,提升系统性能。
描述中提到,这个实例适用于那些可能产生大量内存占用的代码场景。JCS通过将数据存储在内存中,可以快速地读取和写入,避免了传统I/O操作的延迟。同时,JCS支持多种缓存策略,如LRU(Least Recently Used)最近最少...
描述部分简单地重申了标题的信息,强调这是一个与JavaWeb相关的实时新闻更新系统。由于描述较简洁,我们可推测该系统可能专注于核心功能的实现,即新闻的实时获取、处理和展示,而没有过多涉及系统的其他辅助功能或...
在给定的描述中,我们看到Scaffold结合了多个流行的技术,如SpringBoot、MyBatis、Shiro、Druid、Beetl、Ehcache以及前端的Bootstrap、jQuery、layer和zTree。 1. **SpringBoot**:这是一个由Pivotal团队提供的框架...