论坛首页 编程语言技术论坛

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

浏览 6810 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2016-08-18  

 

至于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

font-family: Consola

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics