适用于 Core (SQL) API 的 Spring Data Azure Cosmos DB v2:发行说明和资源

适用于: SQL API

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

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

可在 Azure Spring Cloud 应用程序中使用 Spring Data Azure Cosmos DB。

重要

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

Spring Data Azure Cosmos DB 仅支持 SQL API。

请参阅以下文章,了解其他 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 客户端库
用于 Azure Cosmos DB 的 Spring TODO 应用示例 应用服务 Linux 中的端到端 Java 体验(第 2 部分)
开发人员指南 Spring Data Azure Cosmos DB 开发人员指南
使用 Starter 如何将 Spring Boot Starter 与 Azure Cosmos DB SQL API 配合使用
适用于 Azure Cosmos DB Spring Boot Starter 的 GitHub 存储库
Azure 应用服务示例 如何将 Spring 和 Cosmos DB 与 Linux 上的应用服务配合使用
TODO 应用示例

版本历史记录

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

2.1.9(2019 年 12 月 26 日)

新增功能

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

关键 Bug 修复

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

2.2.0(2019 年 10 月 21 日)

新增功能

  • 完整的 Reactive Cosmos Repository 支持。
  • 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 Cosmos Repository。
  • 更新 DocumentDbTemplate 的实现以使用 Azure Cosmos DB SDK 版本 3。
  • 为 Reactive Cosmos Repository 支持添加其他配置更改。

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。
  • 新增了查询方法关键字的功能。 现在支持来自 SQL API 的 16 个关键字。
  • 新增了具有分页和排序的查询功能。
  • 简化了 spring-data-cosmosdb 的配置。
  • 添加了 deleteCollectiondeleteAll API。

关键 bug 修复

  • Bug 修复和缺陷缓解。

常见问题解答

1.如何向客户通知即将停用的 SDK?

Azure 会在即将停用的 SDK 的支持结束之前提前 12 个月进行通知,以便协助平稳地转换到支持的 SDK。 此外,会通过各种通信渠道(Azure 管理门户、开发人员中心、博客文章以及与分配的服务管理员的直接通信)来通知客户。

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

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

3.在 12 个月通知期之后,客户是否可以使用已停用的 Azure Cosmos DB SDK 创建和修改应用程序?

在 12 个月通知期之后,SDK 会停用。 Azure Cosmos DB 平台不允许使用已停用 SDK 的应用程序对 Azure Cosmos DB 进行任何访问。 此外,Azure 不会对已停用的 SDK 提供客户支持。

4.如果客户运行使用不支持的 Azure Cosmos DB SDK 版本的应用程序,会发生什么情况?

任何使用已停用 SDK 版本连接 Azure Cosmos DB 服务的尝试都会被拒绝。

5.新特性和功能是否会适用于所有未停用的 SDK?

新特性和功能只添加到新版本。 如果使用的是未停用的旧版本 SDK,则对 Azure Cosmos DB 进行的请求仍会与以前一样正常工作,但是你无法访问任何新功能。

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

我们建议尽早升级到最新 SDK。 SDK 标记为要停用之后,会有 12 个月来更新应用程序。 如果由于任何原因而无法在此时间范围内完成应用程序更新,请在截止日期之前与 Cosmos DB 团队联系并请求其帮助。

后续步骤

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

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

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

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