至于MongoDB网上有很多相关的资料,所以在这里不进行过多的介绍,我们在这里主要是介绍下如何将mongodb与spring 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实体类,需要创建一个操作MongoDB的repository类,再者就是一个控制类DemoController。具体看如下代码:
实体类代码DemoInfo:com.kfit.demo.DemoInfo ,具体代码如下:
package com.kfit.demo;
import org.springframework.data.annotation.Id;
/**
* 实体类.
* @author Angel --守护天使
* @version v.0.1
* @date 2016年8月18日下午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使用的。
接下来编写一个操作mongodb的repository代码,它继承MongoRepository接口;MongoRepository接口包含了常用的CRUD操作,例如:save,insert,fillAll等。我们也可以定义我们自己的操作接口,具体看如下代码:
com.kfit.demo.DemoInfoRepository :
package com.kfit.demo;
import org.springframework.data.mongodb.repository.MongoRepository;
/**
* 继承自MongoRepository接口,MongoRepository接口包含了常用的CRUD操作,
* 例如:save、insert、findall等等。我们可以定义自己的查找接口,
* 例如根据demoInfo的name搜索,具体的DemoInfoRepository接口代码如下:
* @author Angel --守护天使
* @version v.0.1
* @date 2016年8月18日下午3:15:49
*/
public interface DemoInfoRepository extends MongoRepository<DemoInfo, String> {
DemoInfo findByName(String name);
}
接下来就是访问控制类,这个类中很简单,都是最基本的代码,看如下:
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 2016年8月18日下午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 2016年8月18日下午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默认的端口号27017,Spring 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
相关推荐
本文将详细介绍如何在Spring Boot项目中集成MongoDB数据库,包括其原理、使用流程、步骤以及完整的代码示例。通过本文,读者将能够了解Spring Boot与MongoDB的集成方式,掌握在Spring Boot应用程序中操作MongoDB...
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅... 本文档是Spring框架高级源码笔记+Spring Boot data mongoDB中文文档 资源合集
spring-boot操作mongodb例子,亲测可以用,代码整理的比较好
Spring集成MongoDB官方指定jar包:spring-data-mongodb-1.4.1.RELEASE.jar
Mongodb入门教程、Mongodb示例、Spring Boot+Mongodb完整示例、Spring Boot+Mongodb完整示例聚合
该压缩文件为spring boot整合mongodb的demo工程,兼容所有版本的mongodb,亲测可用。
spring boot 集成 mongodb
spring-boot-multi-mongodb:spring boot和mongodb多数据源的使用 spring-boot-package-war:spring-boot打包成war包示例 spring-boot-shiro:springboot 整合shiro rbac示例 spring-boot-file-upload:使用Spring ...
spring mvc 集成mongoDB项目 例子
Spring boot使用的各种示例,以最简单...spring-boot-multi-mongodb:spring boot和mongodb多数据源的使用 spring-boot-package-war:spring-boot打包成war包示例 spring-boot-shiro:springboot 整合shiro rbac示例
Spring Boot的依赖管理 6.2。Spring框架 7.使用Spring Data Repositories 7.1。核心概念 7.2。查询方法 7.3。定义存储库接口 7.3.1。微调储存库定义 7.3.2。空处理存储库方法 7.3.3。将存储库与多个Spring Data模块...
Vue+axios+Spring Boot+mongoDB 基于Mongo图片存储和基于GridFS的文件存储.zip
sistema-escolar:Projeto com Spring Boot e MongoDB
Spring Boot Documentation 1. About the Documentation 2. Getting Help 3. First Steps 4. Working with Spring Boot 5. Learning about Spring Boot Features 6. Moving to Production 7. Advanced Topics II. ...
REST API: Java Spring Boot and MongoDB的译文。 第一次做翻译的如果有没翻译准确的欢迎指出,Typora上面编辑的文章移植到CSDN格式就有很多问题,如有需要可以到CSDN下载中下载
mongodb c#驱动 最新驱动mongodb.driver.dll 版本2.12.0-beta1,包内有MongoDB.Bson.dll 、mongodb.driver.core.dll 等文件
Spring Data MongoDB API。 Spring Data MongoDB 开发文档。
自己做着玩的,完成了spring4与mongodb3.4.4的简单集成,供大家参考学习
Spring Boot中增强对MongoDB的配置(连接池等)主要重写了MongoDbFactory的构建来完成,整体实现的过程还是比较复杂的。本文就来具体说说如何更简单的来实现对MongoDB的更多配置定制。
主要有三个模块,springcloud集成es,gateway,mongdodb, 通知有基于feign调用的整套代码注解说明 能帮助大家轻易打建springcloud基于nocos配置,注册中心的微服务架构 包含了远程共享私库 manven配置, nacos配置...