如何将 Spring Data MongoDB API 用于 Azure Cosmos DB

概述

本文演示了如何创建一个示例应用程序,该应用程序使用 Spring Data 通过 Azure Cosmos DB MongoDB API 存储和检索信息。

先决条件

为完成本文介绍的步骤,需要满足以下先决条件:

  • 一个 Azure 订阅;如果没有 Azure 订阅,可以注册试用帐户
  • 一个受支持的 Java 开发工具包 (JDK)。 有关在 Azure 上进行开发时可供使用的 JDK 的详细信息,请参阅 https://aka.ms/azure-jdks
  • Apache Maven 3.0 或更高版本。
  • 一个 Git 客户端。

创建 Azure Cosmos DB 帐户

使用 Azure 门户创建 Cosmos DB 帐户

备注

可以在 Azure Cosmos DB 文档中阅读有关创建 Azure Cosmos DB 帐户的更多详细信息。

  1. 浏览到 https://portal.azure.cn/ 上的 Azure 门户并登录。

  2. 依次单击“+创建资源”、“数据库”和“Azure Cosmos DB”。

    创建 Azure Cosmos DB 帐户

  3. 指定以下信息:

    • 订阅:指定要使用的 Azure 订阅。
    • 资源组:指定是要创建新资源组,还是选择现有资源组。
    • 帐户名称:为 Cosmos DB 帐户选择一个唯一名称;这将用来创建完全限定的域名,例如 wingtiptoysmongodb.database.chinacloudapi.cn
    • API:对于本教程,请指定 Azure Cosmos DB for MongoDB API
    • 位置:指定最靠近你的数据库的地理区域。

    指定 Cosmos DB 帐户设置

  4. 输入上述所有信息后,单击“查看 + 创建”。

  5. 如果查看页面上的所有信息看起来都是正确的,则单击“创建”。

    查看 Cosmos DB 帐户设置

检索 Azure Cosmos DB 帐户的连接字符串

  1. 浏览到 https://portal.azure.cn/ 上的 Azure 门户并登录。

  2. 单击“所有资源”,然后单击你刚才创建的 Azure Cosmos DB 帐户。

    选择 Azure Cosmos DB 帐户

  3. 单击“连接字符串”,复制“主要连接字符串”字段的值;稍后需要使用此值来配置应用程序。

    检索 Cosmos DB 连接字符串

配置示例应用程序

  1. 打开一个命令 shell 并使用 git 命令克隆示例项目,如以下示例所示:

    git clone https://github.com/spring-guides/gs-accessing-data-mongodb.git
    
  2. 在示例项目的 <project root>/complete/src/main 目录中创建一个 resources 目录,然后在 resources 目录中创建一个 application.properties 文件。

  3. 在文本编辑器中打开 application.properties 文件,在文件中添加以下行,并将示例值替换为上文中的相应值:

    spring.data.mongodb.database=wingtiptoysmongodb
    spring.data.mongodb.uri=mongodb://wingtiptoysmongodb:AbCdEfGhIjKlMnOpQrStUvWxYz==@wingtiptoysmongodb.database.chinacloudapi.cn:10255/?ssl=true&replicaSet=globaldb
    

    其中:

    参数 说明
    spring.data.mongodb.database 指定本文上文中所述的 Cosmos DB 帐户的名称。
    spring.data.mongodb.uri 指定本文上文中所述的主要连接字符串
  4. 保存并关闭 application.properties 文件。

打包并测试示例应用程序

  1. 使用 Maven 生成示例应用程序,并将 Maven 配置为跳过测试;例如:

    mvn clean package -DskipTests
    
  2. 启动示例应用程序;例如:

    java -jar target/gs-accessing-data-mongodb-0.1.0.jar
    

    你的应用程序应返回如下所示的值:

    Customers found with findAll():
    -------------------------------
    Customer[id=5c1b4ae4d0b5080ac105cc13, firstName='Alice', lastName='Smith']
    Customer[id=5c1b4ae4d0b5080ac105cc14, firstName='Bob', lastName='Smith']
    
    Customer found with findByFirstName('Alice'):
    --------------------------------
    Customer[id=5c1b4ae4d0b5080ac105cc13, firstName='Alice', lastName='Smith']
    Customers found with findByLastName('Smith'):
    --------------------------------
    Customer[id=5c1b4ae4d0b5080ac105cc13, firstName='Alice', lastName='Smith']
    Customer[id=5c1b4ae4d0b5080ac105cc14, firstName='Bob', lastName='Smith']
    

摘要

在本教程中,你创建了一个示例 Java 应用程序,该应用程序使用 Spring Data 通过 Azure Cosmos DB MongoDB API 存储和检索信息。

后续步骤

若要了解有关 Spring 和 Azure 的详细信息,请继续访问“Azure 上的 Spring”文档中心。

其他资源

有关将 Azure 与 Java 配合使用的详细信息,请参阅面向 Java 开发人员的 Azure