写点什么

MongoDB 入门教程系列之二:使用 Spring Boot 操作 MongoDB

作者:Jerry Wang
  • 2022 年 5 月 06 日
  • 本文字数:2288 字

    阅读完需:约 8 分钟

MongoDB 入门教程系列之二:使用 Spring Boot 操作 MongoDB

本教程的前一篇文章:MongoDB 入门教程系列之一:开发环境搭建以及 Node.js 和 Java 的读写访问,我们首先介绍了 MongoDB 本地环境的搭建,接着举了两个具体的例子,展示了如何使用 Node.js 和 Java 访问 MongoDB 存储的数据。


本教程继续介绍如何使用业界流行的开发工具来操作 MongoDB.


Spring Boot 是一个轻量级框架,可以完成基于 Spring 的应用程序的大部分配置工作。Spring Boot 的目的是提供一组工具,以便快速构建容易配置的 Spring 应用程序,为应用开发人员省去大量传统 Spring 项目的繁琐配置。


本教程第一篇文章已经介绍过,MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。


本文介绍如何使用 Spring Boot 操作 MongoDB,从而通过 Java 代码在 MongoDB 里插入数据。


首先按照本教程前一篇文章的介绍,在本地搭建好 MongoDB 的开发环境。


新建一个 Java 项目,pom.xml 的内容如下:


<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.springframework</groupId><artifactId>gs-rest-service</artifactId><version>0.1.0</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mongodb</groupId><artifactId>mongodb-driver</artifactId><version>3.6.4</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.jayway.jsonpath</groupId><artifactId>json-path</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency></dependencies><properties><java.version>1.8</java.version></properties><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-releases</id><url>https://repo.spring.io/libs-release</url></repository></repositories><pluginRepositories><pluginRepository><id>spring-releases</id><url>https://repo.spring.io/libs-release</url></pluginRepository></pluginRepositories></project>
复制代码



其中下面这个 dependency 的作用是为 SpringBoot 应用提供操作 MongoDB 的功能:


<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>
复制代码


而这个 dependency 能让您的 Spring Boot 应用支持 junit:


<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
复制代码


src/main/test 文件夹下创建一个以 Tests 结尾的 .java 文件,我的例子里是 ApplicationTests.java:


将如下代码粘贴进去:


package main.test;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import main.java.library.Application;import main.java.library.Book;import main.java.library.BookRepository;@RunWith(SpringRunner.class)@SpringBootTest(classes=Application.class)public class ApplicationTests {    @Autowired    private BookRepository bookRepository;    @Before    public void setUp() {        bookRepository.deleteAll();    }    @Test    public void test() throws Exception {        bookRepository.save(new Book("1", "didi", "Jerry"));    }}
复制代码



第 27 行代码,新建了一个 Book 对象,id 为 1,name 为 didi,作者为 Jerry.


然后通过 bookRepository 加入到 MongoDB 里。


BookRepository 的实现:


import java.util.Optional;import org.springframework.data.mongodb.repository.MongoRepository;public interface BookRepository extends MongoRepository<Book, String>, BookRepositoryCustom {    public Optional<Book> findByName(String name);}
复制代码


在 Eclipse 里,确保这个 JUnit 单元测试运行成功:



在 MongoDB Compass 里成功看到这条插入的记录:



总结

SpringBoot 是一个基于 Spring 的 Java 应用开发框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程,能够帮助开发人员专注于业务开发任务本身上去。本文在系列第一篇文章的基础上,介绍了在 SpringBoot 应用里对 MongoDB 的读写访问实现细节。


本教程的第一篇文章:MongoDB 入门教程系列之一:开发环境搭建以及 Node.js 和 Java 的读写访问

发布于: 6 小时前阅读数: 23
用户头像

Jerry Wang

关注

🏆InfoQ写作平台-签约作者🏆 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。

评论

发布
暂无评论
MongoDB 入门教程系列之二:使用 Spring Boot 操作 MongoDB_node.js_Jerry Wang_InfoQ写作社区