美文网首页mongodb
MongoDB 入门教程系列之二:使用 Spring Boot

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

作者: _扫地僧_ | 来源:发表于2022-05-07 09:45 被阅读0次

    本教程的前一篇文章: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 入门教程系列之二:使用 Spring Boot

        本文链接:https://www.haomeiwen.com/subject/sdqpyrtx.html