`

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的哪个集合中?

相关推荐

Global site tag (gtag.js) - Google Analytics