12.3.1 开启Spring Data MongonDB

要开始使用 Spring Data MongoDB,您需要添加 Spring Data MongoDB 的 starter 依赖。Spring Data MongoDB 有两个独立的 starter 可供选择。

如果您使用的是非响应式的 MongoDB,那么您可以添加以下依赖项:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>
        spring-boot-starter-data-mongodb
    </artifactId>
</dependency>

在使用 Spring Initializr 创建工程时,可以通过勾选 MongoDB 复选框以添加这个依赖。但是本章是关于编写响应式 Repository 的,所以您应该选择响应式的 Spring Data MongoDB starter 依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>
        spring-boot-starter-data-mongodb-reactive
    </artifactId>
</dependency>

您还可以在使用 Spring Initializr 时,通过勾选 Reactive MongoDB 复选框,以添加响应式的 Spring Data MongoDB starter 依赖。使用 starter 把依赖添加到项目中,将触发自动配置,以启用 Spring Data 支持。这正如您在第 3 章中为 JPA 或 Cassandra 编写接口时那样。

默认情况下,Spring Data MongoDB 假设 MongoDB 服务运行在本地,并且监听端口 27017。为了方便测试和开发,您可以选择使用嵌入式 Mongo 数据库。为此,可以把 Flapdoodle Embedded MongoDB 依赖项添加到项目中:

<dependency>
    <groupId>de.flapdoodle.embed</groupId>
    <artifactId>de.flapdoodle.embed.mongo</artifactId>
</dependency>

这个 Flapdoodle 嵌入式数据库,为测试和开发提供了便利。它是内存中的 Mongo 数据库,就像您在处理关系型数据库时使用 H2 那样。也就是说,您不需要运行单独的数据库服务,而是所有数据都放在内存中,并且重新启动应用程序时,所有数据将被清除。

嵌入式数据库对于开发和测试来说是很好的,但是一旦您的应用程序要发布到生产环境,您需要确保设置了一些必要属性,以便告知 Spring Data MongoDB 数据库在哪里,以及如何访问:

spring:
   data:
     mongodb:
        host: mongodb.tacocloud.com
        port: 27018
        username: tacocloud
        password: s3cr3tp455w0rd
        database: tacoclouddb

这些属性并不是都需要设置的。它们的作用是帮助 Spring Data MongoDB 了解到 Mongo 数据库未在本地运行。如果分解一下,每个属性所指定的配置如下:

  • spring.data.mongodb.host —— Mongo 服务器的主机名(默认值:localhost)
  • spring.data.mongodb.port —— Mongo 服务器正在侦听的端口(默认值:27017)
  • spring.data.mongodb.username —— 用于访问 Mongo 数据库的用户名
  • spring.data.mongodb.password —— 用于访问 Mongo 数据库的的密码
  • spring.data.mongodb.database —— 数据库名称(默认值:test)

现在,您的项目中启用了 Spring Data MongoDB。下一步,您需要对实体对象添加注解,以便通过 MongoDB 进行文档数据的持久化。

results matching ""

    No results matching ""