javax.cache_新的Java缓存标准(javax.cache)

本文介绍了Java新的缓存标准JSR107(javax.cache),该标准由JSR107开发并在Java EE 7中包含。核心概念包括CacheManager和Cache,支持原子操作、缓存事件监听器、统计等功能。文章还讨论了分布式缓存、类加载、编程及注解方式的缓存配置,并提供了Spring和CDI的整合示例。
摘要由CSDN通过智能技术生成

javax.cache

这篇文章探讨了新的Java缓存标准:javax.cache。

它如何适应Java生态系统

该标准由JSR107开发,作者是共同规范负责人。 JSR107包含在JSR342开发的Java EE 7中。 Java EE 7将于2012年底完成。但是与此同时,javax.cache将在Java SE 6和更高版本以及Java EE 6环境以及Spring和其他流行环境中运行。

JSR107具有草稿状态。 目前,我们的API版本为0.3,参考实现和TCK。 本文中的代码示例适用于此版本。

采用

作为专家组的活跃成员或对实施该规范表示出兴趣的供应商是:

  • 兵马俑– Ehcache
  • Oracle –一致性
  • JBoss – Infinispan
  • IBM – ExtemeScale
  • SpringSource – Gemfire
  • 电网增益
  • 最高温度
  • Google App Engine Java

Terracotta将为Ehcache发布一个模块,使其与最终草案一致,然后在最终版本需要时对其进行更新。

特征

从设计的角度来看,基本概念是CacheManager,用于保存和控制Cache的集合。 缓存具有条目。 基本的API可以像地图一样,具有以下附加功能:

  • 原子操作,类似于java.util.ConcurrentMap
  • 直读缓存
  • 直写式缓存
  • 缓存事件监听器
  • 统计
  • 交易,包括所有隔离级别
  • 缓存注释
  • 具有定义的键和值类型的通用缓存
  • 按引用定义存储(仅适用于堆缓存)和按值存储

可选功能

我们没有采用针对不同用户群体(例如Java SE和Spring / EE)的规范,而是采用了不同的方法。

首先,对于Java SE样式缓存,没有依赖性。 对于Spring / EE,您可能希望使用注释和/或事务,这些框架将满足相关性。

其次,我们通过ServiceProvider.isSupported(OptionalFeature功能)具有功能API,因此您可以在运行时确定实现的功能。 可选功能包括:

  • storeByReference-storeByValue是默认值
  • 交易性的
  • 注解

这使得实现有可能在不必支持所有功能的情况下支持规范,并允许最终用户和框架发现功能是什么,以便他们可以动态配置适当的用法。

适用于独立和分布式缓存

尽管该规范没有强制要求特定的分布式缓存拓扑,但是可以意识到缓存很可能是分布式的。 我们有一个API涵盖了这两种用法,但它对分布式问题很敏感。 例如,CacheEntryListener具有侦听事件的NotificationScope,以便可以将事件限制为本地传递。 我们没有像keySet()和values()这样的网络成本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值