你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 API for NoSQL 的 Spring Data Azure Cosmos DB v2(旧版):发行说明和资源

适用范围: NoSQL

借助适用于 NoSQL 的 Spring Data Azure Cosmos DB 版本 2,开发人员可以在 Spring 应用程序中使用 Azure Cosmos DB。 Spring Data Azure Cosmos DB 公开 Spring Data 接口,以便操作数据库和集合、使用文档和发出查询。 同一 Maven 项目中同时支持 Sync 和 Async (Reactive) API。

警告

此版本的 Spring Data Azure Cosmos DB SDK 依赖于已停用的 Azure Cosmos DB Java SDK 版本。 此 Spring Data Azure Cosmos DB SDK 将在不久的将来宣布停用! 这不是适用于 Azure Cosmos DB 的最新 Azure Spring Data Azure Cosmos DB SDK 并且已过时。 由于 Azure Spring Data Azure Cosmos DB SDK V2 存在性能问题和不稳定,我们强烈建议你将 Azure Spring Data Azure Cosmos DB v3 用于你的项目。 若要升级,请按照迁移到 Azure Cosmos DB Java SDK v4 指南中的说明了解底层 Java SDK V4 中的差异。

Spring Framework 是一种简化 Java 应用程序开发的编程和配置模型。 Spring 使用依赖项注入来简化应用程序的“管道”。 由于 Spring 使得生成和测试应用程序变得更加简单,因此许多开发人员都喜欢 Spring。 Spring Boot 重视 Web 应用程序和微服务的开发,扩展了对管道的处理。 Spring Data 是一种编程模型,用于从 Spring 或 Spring Boot 应用程序的上下文中访问数据存储(如 Azure Cosmos DB)。

可以在 Azure Spring Apps 中托管的应用程序中使用 Spring Data Azure Cosmos DB。

重要

这些发行说明适用于 Spring Data Azure Cosmos DB 的版本 2。 可以在此处找到版本 3 的发行说明

Spring Data Azure Cosmos DB 仅支持 API for NoSQL。

请参阅以下文章,了解其他 Azure Cosmos DB API 上的 Spring Data:

希望快速开始?

  1. 安装最低支持的 Java 运行时版本,JDK 8,以便可以使用 SDK。
  2. 使用 Starter 创建 Spring Data Azure Cosmos DB 应用。 操作起来非常简单!
  3. 通过 Spring Data Azure Cosmos DB 开发人员指南了解基本的 Azure Cosmos DB 请求。

可使用 Spring Initializr 快速启动 Spring Boot Starter 应用!

资源

资源 链接
SDK 下载 Maven
API 文档 Spring Data Azure Cosmos DB 参考文档
参与编写 SDK GitHub 上的 Spring Data Azure Cosmos DB 存储库
Spring Boot Starter 适用于 Java 的 Azure Cosmos DB Spring Boot Starter 客户端库
开发人员指南 Spring Data Azure Cosmos DB 开发人员指南
使用 Starter 如何将 Spring Boot Starter 与 Azure Cosmos DB for NoSQL 配合使用
适用于 Azure Cosmos DB Spring Boot Starter 的 GitHub 存储库
Azure 应用服务示例 如何将 Spring 和 Azure Cosmos DB 与 Linux 上的应用服务配合使用

版本历史记录

2.3.0(2020 年 5 月 21 日)

新增功能

  • 将 Spring Boot 版本更新为 2.3.0。

2.2.5(2020 年 5 月 19 日)

新增功能

  • 将 Azure Cosmos DB 版本更新为 3.7.3。

关键 Bug 修复

  • 包含来自 Azure Cosmos DB SDK 3.7.3 的内存泄漏修复和 Netty 版本升级。

2.2.4(2020 年 4 月 6 日)

关键 bug 修复

  • 修复了 allowTelemetry 标志,以考虑到 CosmosDbConfig 中的问题。
  • 修复了容器上的 TTL 属性。

2.2.3(2020 年 2 月 25 日)

新增功能

  • 通过分区键 API 添加了新的 findAll
  • 将 Azure Cosmos DB 版本更新为 3.7.0。

关键 bug 修复

  • 修复了 collectionName ->containerName
  • 修复了 entityClassdomainClass ->domainType
  • 修复了以下问题:返回存储库保存的实体集合而不是输入实体。

2.1.10(2020 年 2 月 25 日)

关键 bug 修复

  • 向后移植修复了以下问题:返回存储库保存的实体集合而不是输入实体

2.2.2(2020 年 1 月 15 日)

新增功能

  • 将 Azure Cosmos DB 版本更新为 3.6.0。

关键 bug 修复

2.2.1(2019 年 12 月 31 日)

新增功能

  • 将 Azure Cosmos DB SDK 版本更新为 3.5.0。
  • 添加了注释字段以启用或禁用自动集合创建。
  • 改进了异常处理。 通过 CosmosDBAccessException 公开 CosmosClientException
  • 通过 ResponseDiagnostics 公开 requestChargeactivityId

关键 bug 修复

  • SDK 3.5.0 更新修复了以下问题:Azure Cosmos DB HTTP 响应头大于 8192 字节时出现异常;ConsistencyPolicy.defaultConsistencyLevel() 在有限过期和前缀一致性上失败。
  • 修复了 findById 方法的行为。 以前,如果找不到实体,则此方法返回空值,而不是引发异常。
  • 修复了使用 CosmosPageRequest 时未在下一页应用排序的 bug。

2.1.9(2019 年 12 月 26 日)

新增功能

  • 添加了注释字段以启用或禁用自动集合创建。

关键 Bug 修复

  • 修复了 findById 方法的行为。 以前,如果找不到实体,则此方法返回空值,而不是引发异常。

2.2.0(2019 年 10 月 21 日)

新增功能

  • 完整的 Reactive Azure Cosmos DB 存储库支持。
  • Azure Cosmos DB 请求诊断字符串和查询指标支持。
  • Azure Cosmos DB SDK 版本更新为 3.3.1。
  • Spring Framework 版本升级为 5.2.0.RELEASE。
  • Spring Data Commons 版本升级为 2.2.0.RELEASE。
  • 添加了 findByIdAndPartitionKeydeleteByIdAndPartitionKey API。
  • 从 azure-documentdb 中删除了依赖项。
  • 将 DocumentDB 重命名为了 Azure Cosmos DB。

关键 bug 修复

  • 修复了以下问题:pageSize 小于存储库中的总项时排序引发异常。

2.1.8(2019 年 10 月 18 日)

新增功能

  • 弃用了 DocumentDB API。
  • 添加了 findByIdAndPartitionKeydeleteByIdAndPartitionKey API。
  • 添加了基于 _etag 的乐观锁定。
  • 对文档集合名称启用了 SpEL 表达式。
  • 添加 ObjectMapper 改进。

2.1.7(2019 年 10 月 18 日)

新增功能

  • 添加 Azure Cosmos DB SDK 版本 3 依赖项。
  • 添加 Reactive Azure Cosmos DB 存储库。
  • 更新 DocumentDbTemplate 的实现以使用 Azure Cosmos DB SDK 版本 3。
  • 为 Reactive Azure Cosmos DB 存储库支持添加其他配置更改。

2.1.2(2019 年 3 月 19 日)

关键 bug 修复

  • 因以下原因删除了 applicationInsights 依赖性:
    • 依赖项污染的潜在风险。
    • Java 11 不兼容。
    • 避免对 CPU 和/或内存产生潜在的性能影响。

2.0.7(2019 年 3 月 20 日)

关键 bug 修复

  • 因以下原因删除了 applicationInsights 依赖性:
    • 依赖项污染的潜在风险。
    • Java 11 不兼容。
    • 避免对 CPU 和/或内存产生潜在的性能影响。

2.1.1(2019 年 3 月 7 日)

新增功能

  • 将主版本更新为 2.1.1。

2.0.6(2019 年 3 月 7 日)

新增功能

  • 忽略遥测中的所有异常。

2.1.0(2018 年 12 月 17 日)

新增功能

  • 将版本更新为 2.1.0 以解决问题。

2.0.5(2018 年 9 月 13 日)

新增功能

  • 添加关键字 existsstartsWith
  • 更新自述文件。

关键 bug 修复

  • 修复了以下问题:无法为 Entity 直接调用 self href。
  • 修复了以下问题:如果未创建集合,findAll 将失败。

2.0.4(预发行版)(2018 年 8 月 23 日)

新增功能

  • 将包从 documentdb 重命名为 cosmosdb。
  • 新增了查询方法关键字的功能。 现在支持来自 API for NoSQL 的 16 个关键词。
  • 新增了具有分页和排序的查询功能。
  • 简化了 spring-data-cosmosdb 的配置。
  • 添加了 deleteCollectiondeleteAll API。

关键 bug 修复

  • Bug 修复和缺陷缓解。

常见问题解答

如何收到即将停用的 SDK 的通知?

Microsoft 会在即将停用的 SDK 的支持结束之前提前 12 个月进行通知,以便协助平稳地转换到支持的 SDK。 我们会通过以下通信通道通知你:Azure 门户、Azure 更新以及与分配的服务管理员的直接通信。

在这 12 个月期间,我是否可以使用即将停用的 Azure Cosmos DB SDK 来创作应用程序?

可以,你可以在 12 个月的宽限期内使用即将停用的 Azure Cosmos DB SDK 创作、部署和修改应用程序。 建议在 12 个月的宽限期内根据相应情况迁移到支持的较新版本 Azure Cosmos DB SDK。

停用日期之后,使用不受支持的 Azure Cosmos DB SDK 的应用程序会发生什么情况?

停用日期之后,Azure Cosmos DB 将不再进行 bug 修复、添加新功能或为已停用的 SDK 版本提供支持。 如果不想升级,从已停用的 SDK 版本发送的请求将继续由 Azure Cosmos DB 服务提供服务。

哪些 SDK 版本将包含最新功能和更新?

新功能和更新将仅添加到最新的受支持的主要 SDK 版本的最新次要版本。 建议始终使用最新版本,以充分利用新功能、性能改进和 bug 修补程序。 如果使用的是未停用的旧版本 SDK,则对 Azure Cosmos DB 进行的请求仍然有效,但是你无法访问任何新功能。

如果无法在截止日期之前更新应用程序,该怎么办?

我们建议尽早升级到最新 SDK。 SDK 标记为要停用之后,你将有 12 个月的时间来更新应用程序。 如果无法在停用日期之前更新,从已停用的 SDK 版本发送的请求将继续由 Azure Cosmos DB 提供服务,因此正在运行的应用程序将继续运行。 但 Azure Cosmos DB 将不再进行 bug 修复、添加新功能或为已停用的 SDK 版本提供支持。

如果你有支持计划并需要技术支持,请创建支持工单以联系我们

如何请求将功能添加到 SDK 或连接器?

新功能并不总是立即添加到每个 SDK 或连接器中。 如果你想添加的功能不受支持,请在我们的社区论坛提出反馈。

后续步骤

了解有关 Azure Cosmos DB 的详细信息。

了解有关 Spring Framework 的详细信息。

详细了解有关 Spring Boot 的详细信息。

详细了解有关 Spring Data 的详细信息。