📅  最后修改于: 2023-12-03 15:05:16.771000             🧑  作者: Mango
Spring Data MongoDB 是一个为 MongoDB 提供支持的 Spring 框架的子项目。它提供了一种面向对象的方式来访问 MongoDB 的数据存储,并且能够与其他 Spring 模块完美集成。本文将介绍如何在 Spring Boot 应用程序中使用 Spring Data MongoDB,并连接至 MongoDB 副本集。
在开始之前,确保已经安装并配置好了 Java 和 MongoDB 环境。我们使用 Spring Initializr 来创建一个 Spring Boot 应用程序,其中包含了 Spring Data MongoDB 和 Web 依赖项。
使用以下命令来创建一个新的 Spring Boot 项目:
$ curl https://start.spring.io/starter.zip \
-d dependencies=web,data-mongodb \
-d baseDir=spring-data-mongodb-replicaset \
-d artifactId=spring-data-mongodb-replicaset \
| bsdtar -xf-
这将创建一个名为 spring-data-mongodb-replicaset
的目录,其中包含所有所需文件。我们还需要添加一些额外的依赖关系,以便我们能够连接 MongoDB 副本集。添加以下 Maven 依赖项到 pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.4.3</version>
</dependency>
接下来,我们需要配置 MongoDB 副本集连接。打开 application.properties
文件,并添加以下内容:
spring.data.mongodb.uri=mongodb://localhost:27017,localhost:27018/spring-data-mongodb-replica-set?replicaSet=rs0
在这个配置中,我们指定了 MongoDB 的主机和端口以及连接字符串中的副本集名称。接下来,让我们创建一个简单的模型类和存储库类,以便我们能够从 MongoDB 中读取数据。
创建一个名为 Book
的简单模型类:
public class Book {
private String id;
private String name;
public Book(String name) {
this.name = name;
}
public String getId() {
return this.id;
}
public String getName() {
return this.name;
}
}
接下来,创建一个名为 BookRepository
的存储库类:
@Repository
public interface BookRepository extends MongoRepository<Book, String> {
List<Book> findAllByName(String name);
}
我们可以注入 BookRepository
对象并使用它从 MongoDB 中读取数据。让我们创建一个简单的 REST API 端点以便我们测试是否可以读取和写入数据。
创建一个名为 BookController
的类,并添加以下内容:
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private BookRepository bookRepository;
@PostMapping
public Book save(@RequestBody Book book) {
return bookRepository.save(book);
}
@GetMapping("/{name}")
public List<Book> findByName(@PathVariable String name) {
return bookRepository.findAllByName(name);
}
}
现在,我们可以使用 HTTP POST
请求将数据保存到 MongoDB 中,使用 HTTP GET
请求从 MongoDB 中检索数据。
我们已经完成了应用程序的所有配置和代码。使用以下命令运行应用程序:
$ ./mvnw spring-boot:run
打开浏览器并转到 http://localhost:8080/books
。您应该能够使用 Postman 或任何其他 HTTP 请求工具从 MongoDB 中进行读取和写入。
本文介绍了如何在 Spring Boot 应用程序中使用 Spring Data MongoDB,并连接至 MongoDB 副本集。我们创建了一个名为 BookRepository
的存储库类,并使用它从 MongoDB 中读取数据。通过创建一个简单的 REST API 端点,我们可以从浏览器或 HTTP 请求工具中使用它。