随笔 - 303  文章 - 0  评论 - 3  阅读 - 15万

数据缓存之Cache规范JSR107

  JSR是Java Specification Requests 的缩写 ,Java规范请求——提交Java规范。 JSR-107就是关于如何使用缓存的规范,是java提供的一个接口规范,类似于JDBC规范,没有具体的实 现,具体的实现就是reids等这些缓存技术。
  JSR-107相关内容:Java CachingJSR-107)定义了5个核心接口,分别是CachingProviderCacheManager、CacheEntryExpiry,其具体功能如下:

    CachingProvider(缓存提供者):创建、配置、获取、管理和控制多个CacheManager。

    CacheManager(缓存管理器):创建、配置、获取、管理和控制多个唯一命名的Cache。

    Cache(缓存):是由CacheManager管理的,CacheManager管理Cache的生命周期,其存在于CacheManager的上下文中,是一个类似map的数据结构,并临时存储以key为索引的值。Cache与CacheManager一一对应。

    Entry(缓存键值对):是一个存储在Cache中的key-value对。

    Expiry(缓存失效):每一个存储在Cache中的条目都有一个定义的有效期。一旦超过这个时间,条目就自动过期;过期后,条目将不可以访问、更新和删除操作。缓存有效期可以通过ExpiryPolicy设置。

  其关系图如下:
                

 

  在 数据访问 MyBatis中有涉及缓存的文章(MyBatis功能点之一(1):MyBatis缓存初体验MyBatis功能点之一(2):二级缓存cacheMyBatis功能点一应用:二级缓存整合redis),MyBatis中的缓存是否符合这个标准呢?

  其能整合redis姑且猜测其符合这个标准。参考MyBatis功能点之一(补充):MyBatis缓存Cache包及下图

                

  可知其符合JSR-107。

  除了MyBatis,Spring提供了org.springframework.cache.Cacheorg.springframework.cache.CacheManager接口来统一不同的缓存技术并支持使用JavaCaching注解简化缓存开发。其中,CacheManager是Spring提供的各种互斥技术抽象接口;Cache接口包含缓存的各种操作(增、删、获取缓存等), Cache 只负责维护抽象层,具体的实现由自己的技术选型来决定——进而将缓存管理和缓存技术解除耦合。

  1、Spring内置的CacheManager,针对不同的缓存技术需要不同的CacheManager:

                

  2、Spring内置的Cache:

                 

   Spring提供Java Cache注解简化开发,即支持声明式缓存注解(又是一个使用注解式AOP的生动例子)。具体如下:

                

 

posted on   池塘里洗澡的鸭子  阅读(43)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示