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

語言: CN / TW / HK

本教程的前一篇文章: 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 的讀寫訪問