JSR107

发布时间 2023-06-30 20:17:35作者: 普通骑士团火系魔法师
 
JSR107
 
  JSR是Java Specification Requests 的缩写 ,Java规范请求,故名思议提交Java规范,
JSR-107呢,就是关于如何使用缓存的规范,是java提供的一个接口规范,类似于JDBC规范,没有具体的实现,具体的实现就是ehcache等这些缓存解决方案。
 
 JSR107核心接口

Java Caching(JSR-107)定义了5个核心接口,分别是CachingProvider、CacheManager、Cache、Entry和Expiry。

- CachingProvider(缓存提供者):创建、配置、获取、管理和控制多个CacheManager。
- CacheManager(缓存管理器):创建、配置、获取、管理和控制多个唯一命名的Cache,Cache存在于CacheManager的上下文中。一个CacheManager仅对应一个CachingProvider。
-
Cache(缓存):是由CacheManager管理的,CacheManager管理Cache的生命周期,Cache存在于CacheManager的上下文中,是一个类似map的数据结构,并临时存储以key为索引的值。一个Cache仅被一个CacheManager所拥有。
- Entry(缓存键值对):是一个存储在Cache中的key-value对。
- Expiry(缓存时效):每一个存储在Cache中的条目都有一个定义的有效期。一旦超过这个时间,条目就自动过期,过期后,条目将不可以访问、更新和删除操作。缓存有效期可以通过ExpiryPolicy设置。
 
 
 

 


一个应用里面可以有多个缓存提供者(CachingProvider),一个缓存提供者可以获取到多个缓存管理器(CacheManager)
,一个缓存管理器管理着不同的缓存(Cache),缓存中是一个个的缓存键值对(Entry),每个entry都有一个有效期(Expiry)
。缓存管理器和缓存之间的关系有点类似于数据库中连接池和连接的关系。
 
使用JSR-107需导入的依赖:

 
<dependency>
  <groupId>javax.cache</groupId>
  <artifactId>cache-api</artifactId>
</dependency>