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 进行文档数据的持久化。
复制链接