📌  相关文章
📜  spring.data.mongodb.host 副本集 - Go 编程语言 - Go 编程语言(1)

📅  最后修改于: 2023-12-03 15:05:16.771000             🧑  作者: Mango

使用 Spring Data MongoDB 副本集

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 副本集连接

接下来,我们需要配置 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 端点以便我们测试是否可以读取和写入数据。

创建 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 请求工具中使用它。