`

84. Spring Boot集成MongoDB【从零开始学Spring Boot】

阅读更多

  

 

至于MongoDB网上有很多相关的资料,所以在这里不进行过多的介绍,我们在这里主要是介绍下如何将mongodbspring boot结合使用。本节大纲:

(1) 准备工作;

(2) 新建一个maven java project;

(3) 引入相关依赖;

(4) 编写测试代码;

(5) 配置文件;

(6) 使用MongoTemplate进行操作;

 

       接下来一起看看每个步骤都是怎么操作的吧。

(1) 准备工作;

       既然需要使用mongodb,那么很明显就需要安装mongodb 服务。这个网络上有很多相关的资料,自行进行操作。

       下载安装完,把mongodb服务启动起来以备之后进行操作使用。

(2) 新建一个maven java project;

       在这里我们新建一个spring-boot-mongodb项目。

(3) 引入相关依赖;

       引入相关依赖,在这里最主要的是mongodb的依赖,其它的依赖就是基本的了,具体看如下pom.xml文件:

<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>com.kfit</groupId>

  <artifactId>spring-boot-mongodb</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>jar</packaging>

 

  <name>spring-boot-mongodb</name>

  <url>http://maven.apache.org</url>

 

  <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!-- jdk版本号,angel在这里使用1.8,大家修改为大家本地配置的jdk版本号即可 -->

    <java.version>1.8</java.version>

  </properties>

   

    <!--

       spring boot 父节点依赖,

       引入这个之后相关的引入就不需要添加version配置,

       spring boot会自动选择最合适的版本进行添加。

     -->

    <parent>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-parent</artifactId>

       <version>1.3.3.RELEASE</version>

    </parent> 

   

  <dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

    </dependency>

   

    <!-- spring boot web支持:mvc,aop... -->

    <dependency>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-web</artifactId>

    </dependency>

   

    <!-- 增加mongodb支持 -->

    <dependency>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-data-mongodb</artifactId>

    </dependency>

   

  </dependencies>

</project>

 

(4) 编写测试代码;

       在这里我们需要编写一个简单的例子进行测试下,我们需要创建一个DemoInfo实体类,需要创建一个操作MongoDBrepository类,再者就是一个控制类DemoController。具体看如下代码:

实体类代码DemoInfocom.kfit.demo.DemoInfo ,具体代码如下:

package com.kfit.demo;

 

import org.springframework.data.annotation.Id;

 

/**

 * 实体类.

 * @author Angel --守护天使

 * @version v.0.1

 * @date 2016818下午3:15:39

 */

public class DemoInfo {

   

    //id属性是给mongodb用的,用@Id注解修饰

    @Id

    private String id;

   

    private String name;

   

    privateintage;

   

 

    public String getName() {

       returnname;

    }

 

    public void setName(String name) {

       this.name = name;

    }

 

    public int getAge() {

       return age;

    }

 

    public void setAge(intage) {

       this.age = age;

    }

 

    @Override

    public String toString() {

       return "DemoInfo [id=" + id + ", name=" + name + ", age=" + age + "]";

    }

}

       这个类很简单,跟普通的实体类相比就是多了一个id的注解,这给Mongodb使用的。

       接下来编写一个操作mongodbrepository代码,它继承MongoRepository接口;MongoRepository接口包含了常用的CRUD操作,例如:save,insert,fillAll等。我们也可以定义我们自己的操作接口,具体看如下代码:

com.kfit.demo.DemoInfoRepository

 

package com.kfit.demo;

 

import org.springframework.data.mongodb.repository.MongoRepository;

 

/**

 * 继承自MongoRepository接口,MongoRepository接口包含了常用的CRUD操作,

 * 例如:saveinsertfindall等等。我们可以定义自己的查找接口,

 * 例如根据demoInfoname搜索,具体的DemoInfoRepository接口代码如下:

 * @author Angel --守护天使

 * @version v.0.1

 * @date 2016818下午3:15:49

 */

public interface  DemoInfoRepository  extends MongoRepository<DemoInfo, String> {

    DemoInfo findByName(String name);

}

 

       接下来就是访问控制类,这个类中很简单,都是最基本的代码,看如下:

com.kfit.demo.DemoController

package com.kfit.demo;

 

import java.util.List;

 

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

 

/**

 *

 * @author Angel --守护天使

 * @version v.0.1

 * @date 2016818下午8:49:35

 */

@RestController

public class DemoController {

   

    @Autowired

    private DemoInfoRepository demoInfoRepository;

   

    @RequestMapping("save")

    public String save(){

       DemoInfo demoInfo = new DemoInfo();

       demoInfo.setName("张三");

       demoInfo.setAge(20);

       demoInfoRepository.save(demoInfo);

      

       demoInfo = new DemoInfo();

       demoInfo.setName("李四");

       demoInfo.setAge(30);

       demoInfoRepository.save(demoInfo);

      

       return "ok";

    }

   

    @RequestMapping("find")

    public List<DemoInfo> find(){

       return demoInfoRepository.findAll();

    }

   

    @RequestMapping("findByName")

    public DemoInfo findByName(){

       return demoInfoRepository.findByName("张三");

    }

   

}

 

       最后编写App.java启动类,启动应用程序:

com.kfit.App

package com.kfit;

 

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

 

/**

 *

 * @author Angel --守护天使

 * @version v.0.1

 * @date 2016818下午3:15:28

 */

@SpringBootApplication

public class App {

    public static void main(String[] args) {

       SpringApplication.run(App.class, args);

    }

}

       好了到这里,简单的一个程序就可以运行起来看看了,运行起来之后,依次访问如下地址:

http://127.0.0.0.1:8080/save :保存两条数据;

http://127.0.0.0.1:8080/find  :查询所有数据;

http://127.0.0.0.1:8080/findByName  :通过名称查找;

       只要在浏览器中能看到数据,那么恭喜你,基本的使用算是成功了。那么你肯定会有疑问,看下文。

 

(5) 配置文件

       我们会发现我们根本没有做什么配置,所以spring boot提供了默认的一些配置,比如地址,端口号,那么如果我们修改了mongodb默认的端口号27017Spring boot 也给我们配置的地方application.properties文件,具体支持如下一些配置:

# MONGODB (MongoProperties)

spring.data.mongodb.authentication-database= # Authentication database name.

spring.data.mongodb.database=test # Database name.

spring.data.mongodb.field-naming-strategy= # Fully qualified name of the FieldNamingStrategy to use.

spring.data.mongodb.grid-fs-database= # GridFS database name.

spring.data.mongodb.host=localhost # Mongo server host.

spring.data.mongodb.password= # Login password of the mongo server.

spring.data.mongodb.port=27017 # Mongo server port.

spring.data.mongodb.repositories.enabled=true # Enable Mongo repositories.

spring.data.mongodb.uri=mongodb://localhost/test # Mongo database URI. When set, host and port are ignored.

spring.data.mongodb.username= # Login user of the mongo server.

 

(6) 使用MongoTemplate进行操作;

       首先在DemoController中引入MongoTemplate

   @Autowired

   private MongoTemplate mongoTemplate;


      
编写访问方法:

   @RequestMapping("find2")

   public List<DemoInfo> find2(){

      return mongoTemplate.findAll(DemoInfo.class);

   }

 

       访问地址:http://127.0.0.1:8080/find2 ,如果看到和find一样的数据,恭喜你你成功了。好了暂时就介绍到这里。

 

 à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

分享到:
评论
4 楼 林祥纤 2017-02-27  
di1984HIT 写道
学习了,不错不错~~~  


谢谢支持。
3 楼 di1984HIT 2017-02-26  
学习了,不错不错~~~  
2 楼 思念-悲伤 2017-02-25  
请问用户名和密码怎么配置,mongodb3.0+
1 楼 南有令秧 2016-09-10  
请问楼主,使用mongoTemplates的时候,插入的pojo数据是插到了mongodb的哪个集合中?

相关推荐

    38. Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】

    Spring Boot提供了多种集成Session的解决方案,其中一种就是使用Redis作为Session的存储介质。Redis是一个高性能的键值数据库,支持丰富的数据结构,如字符串、哈希、列表、集合等,非常适合用来存储Session。 要...

    1. [视频]spring boot起步之Hello World【从零开始学Spring Boot】

    在本节中,我们将深入探讨"Spring Boot起步之Hello World"这一主题,这是学习Spring Boot框架的典型入门教程。Spring Boot是由Pivotal团队开发的一个框架,它旨在简化Spring应用程序的初始搭建以及开发过程,通过...

    Spring Boot 系列教程 入门

    总的来说,"Spring Boot系列教程入门"将涵盖以上知识点,并逐步教你如何从零开始搭建和运行一个完整的Spring Boot应用,包括配置、依赖管理、数据访问、Web开发和部署等方面,让你快速成为Spring Boot开发的行家里手...

    Spring Boot 系列实战合集.zip

    1. 创建第一个 Spring Boot 项目:从零开始创建一个简单的 "Hello, World!" 应用,理解 Maven 或 Gradle 项目的结构。 2. 使用 Spring Boot 的自动配置:探究如何利用自动配置来简化配置文件。 3. 开发 RESTful API...

    从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建.docx

    在本文中,我们将详细介绍如何从零开始搭建一个基于Spring Boot的开发环境,其中包括Spring Boot、Mybatis和Swagger2的集成。首先,让我们了解为何选择Spring Boot。 **为什么使用Spring Boot** Spring Boot是...

    [E文]Spring Boot 2 Recipes

    综上所述,《Spring Boot 2 Recipes》这本书不仅是一本实用的技术手册,还是一本引导读者从零开始到精通 Spring Boot 2 的宝贵资源。无论是新手还是有经验的开发者,都能从中获得有价值的指导和启发。

    spring boot中文参考指南

    综上所述,"spring boot中文参考指南"这份文档将涵盖以上各个方面的内容,指导读者从零开始学习Spring Boot,直至掌握构建微服务的关键技能。这份PDF资源对于Spring Boot初学者或是希望提升微服务开发能力的开发者来...

    SpringBoot实战(自带目录)第四版PDF下载

    10. **实战项目**:通过实际案例演示如何从零开始构建一个完整的Spring Boot应用,包括前后端分离、API设计、部署和运维等方面。 阅读本书,不仅可以帮助开发者快速上手Spring Boot,还能深入理解其设计理念,提升...

    SpringBoot官方文档(中文)

    5. 零配置:Spring Boot推崇“约定优于配置”的原则,很多配置都可以默认工作,但仍然允许你自定义设置。 在文档中,你会找到以下主要部分的详细信息: 1. **快速入门**:介绍如何创建第一个Spring Boot应用,包括...

    干净可用spring-boot的项目

    这大大节省了开发者从零开始构建新项目的时间,提高了开发效率。 下面我们将深入探讨Spring Boot的核心特性和主要知识点: 1. **起步依赖(Starter Dependencies)**:Spring Boot通过“起步依赖”管理依赖关系,...

    Spring Boot企业某信点can系统(视频+源码).zip

    教程包含了完整的视频教程和源代码,旨在帮助开发者从零开始掌握这一技术栈。 首先,基础环境的搭建至关重要。"java项目本地环境搭建手册.pdf"提供了详尽的指南,涵盖了Java开发环境的配置,包括JDK的安装、IDE的...

    2020最新-百战程序员-SpringBoot视频教程入门到高级(高薪必备技能).txt

    根据给定文件的信息,我们...通过以上学习路径,开发者可以从零开始逐步掌握Spring Boot及其相关技术栈,最终成为一名合格的Spring Boot开发者。在整个过程中,持续实践和参与开源项目对于提升技能也是非常有帮助的。

    使用GORM构建Spring Boot应用程序 Grails指南_ Grails框架.pdf

    如果你想要从零开始,可以使用Spring Initializr创建一个新的Spring Boot项目,选择Gradle作为构建工具,使用Groovy语言,并且指定Spring Boot的版本为1.5.6.RELEASE。同时,确保添加Web和H2数据库依赖项。 接下来...

    Spring boot 总结

    它集成了许多常用的第三方库,例如 Jackson、JDBC、MongoDB、Redis 和 Mail 等,使得这些库可以实现零配置的开箱即用。 ### Maven 与 Spring Boot #### Maven 继承与依赖管理 在使用 Maven 进行项目管理时,可以...

    Spring中文版基础教程,从0开始教你Spring

    《Spring中文版基础教程》是一本面向初学者的详尽指南,旨在帮助读者从零开始掌握Spring框架的基础知识。Spring是Java开发中最流行的轻量级框架之一,它提供了丰富的功能来简化企业级应用的开发。本教程将带你一步步...

    GitChatLesson-SpringBootStudy:CSDN GitChat达人课《跟武哥一起学Spring Boot》

    通过这个课程,学员将能从零开始,逐步建立起对Spring Boot的全面认知,并能独立开发出功能完备的应用。通过阅读和实践"GitChatLesson-SpringBootStudy-master"中的源代码,将有助于巩固理论知识并提升实际操作能力...

    2020最新-百战程序员-SpringData视频教程从入门到精通(高薪必备技能).txt

    - **在线课程**:如“百战程序员”的Spring Data视频教程,适合从零开始学习到进阶。 - **社区论坛**:Stack Overflow、GitHub等社区可以获取最新的技术动态和解决实际遇到的问题。 综上所述,Spring Data是现代...

    springboot-essentials:Spring Boot Essentials课程资源

    这使得开发者无需从零开始配置每一个细节,从而大幅提高开发效率。起步依赖则让开发者能够只关注自己的业务代码,而不需要花费太多时间在依赖管理上。例如,使用Spring Initializr生成项目时,你可以根据需要选择...

    spring-boot-udemy

    本教程将深入探讨Spring Boot的核心特性,并逐步引导你从零开始构建一个完整的Spring Boot应用。我们将涵盖以下主要内容: 1. **Spring Boot简介**:首先,我们将了解Spring Boot的基本概念,包括它的设计理念、...

    基于Springboot儿童玩具售卖网站的设计与实现(部署视频).zip

    视频教程“springboot儿童玩具售卖网站的设计与实现.mp4”将详细讲解以上各个步骤,包括代码实现、配置详解、问题排查等,帮助开发者从零开始构建这样一个完整的电商平台。通过学习,不仅可以掌握Spring Boot的实践...

Global site tag (gtag.js) - Google Analytics