JAD-CACHE缓存框架,srping集成EhCache及实现本地缓存

    本文介绍前文《JAD-CACHE缓存框架,架构设计篇》设计的JAD-CACHE框架的基础上进一步介绍 JAD-CACHE如果实现本地缓存以及集成EhCache

1、实现本地缓存

       Spring自带的cache模块本身内置了一个用Map实现的本地缓存。但因为功能比较简单,JAD-CACHE对它进行了扩展,如下类图:


    上图中,上面一排都是JAD-CACHE的抽象实现类,在前文已经介绍过了,本地缓存的实现,主要是下面一排的三个实现类。

     图中LocalMapCache类就是Cache接口的实现类,它继承于JadAbstractCacheManager,拥有父类的可被CacheClient管理、支持缓存null值、支持差异化存活时间等特性。而它本身对于缓存数据的实现是通过它自身维护的ConcurrentMap列表来实现的。

JAD-CACHE架构设计中,每一个Cache实例都会被一个CacheClient管理,对于LocalMapCache,管理它的CacheClient就是SimpleLocalCacheClient实例。SimpleLocalCacheClientAbstractCacheClient的子类,它实现的父类的抽象方法registryCacheManager(),在它被初始化的过程中,注册一个SimpleLocalCacheManager实例,作为它控制的CacheManager(因为JAD-CACHE框架要求每一个CacheClient实例中都持有一个CacheManager类型的引用)。SimpleLocalCacheManager类从JAD-CACHE框架中的JadAbstractCacheManager类继承,并实现了getMissingCache(string),在这个getMissingCache()方法,实现了跟据参数决定是否需要自动创建Cache的逻辑。这使得,开发人员在需要使用某个Cache时,不需要事先配置,只需要使定它的autoCreateCache属性为true就可以自动创建Cache了。

    因为SimpleLocalCacheManager类是SimpleLocalCacheClient实例在初始化的时候自动创建并注入的,所以这个实例对于开发人员来说是透明的,开发人员只需配置SimpleLocalCacheClient实例而无需配置SimpleLocalCacheManager,只要控制SimpleLocalCacheClient的启停等状态,就可以通过它自动注入的SimpleLocalCacheManager实例间接的操作缓存。

2、集成EhCache

     Spring 缓存模块本身是自带了与 EhCache 集成相关的 CacheManager 实现类。但应功能简单, JAD-CACHE 在这里重新提供了几个新的实现,如下图:

    上图中JadEhCacheCacheCache接口的实现类,它包装了Ehcache这个Ehcache厂商实现的缓存对像。它实现了父类lookup(),get(),put()等操作缓存的抽像方法。具体实现逻辑就委托给Ehcache对像通过Ehcache自身的api去操作Ehcache缓存。

    JadEhCacheCache实例对像的CacheClient实现类是EhcacheClient类,这个类从AbstractCacheClient继承,除了拥有父类的autoCreateCache等属性外,还有一个configFile属性,这个属性用于配置Ehcache配置文件和名称路径(默认为classpath跟目录下的ehcache.xml)。

    JadEhCacheCache实例在初始化的时候,会自动注入一个JadEhCacheCacheManager类型的实例,这个类是JadAbstractCacheManager类的子类,它实现了父类的loadCaches()等方法,在它初始化的时候,会自动加载ehcache.xml配置文件中配置的Cache,而且具备自动创建缺省配置Cache的能力。

JadEhCacheCacheManagerEhcacheClient实例初始化的时候自动注入的,对开发人员人透明,开发人只要配置EhcacheClient实例而无需再配置JadEhCacheCacheManager就可以集成Ehcache了。

3、集成MemCahce

       Spring缓存模块并没有提供对MemCache的支持,需要实现,但因MemCache是一个服务器缓存,自身比较复杂。JAD-CACHE采用阿里开源的memcache客户端代码,在它的基础上做了扩展,这里暂不讨论,稍后写一篇文章单独讨论。

       目前JAD-CACHE项目已在开源中国码云平台上开源,地址:

https://git.oschina.net/457049726/jad-cache

更多信息,欢迎扫以下二维码关注我的微信公众号:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w4hechuan2009

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值