Appearance
Spring Boot 整合 MongoDB 概述
简介
MongoDB 是一个开源、高性能、无模式的文档型数据库,它是 NoSQL 数据库产品中的一种,是最像关系型数据库的非关系型数据库。
无模式是指:MongoDB 作为一款数据库,但没有固定的数据存储结构。第一条数据可能有A、B、C一共3个字段,第二条数据可能有D、E、F也是3个字段,第三条数据可能是A、C、E3个字段,也就是说数据的结构不固定,灵活,随时变更,不受约束。
本笔记重点为 Spring Boot 如何整合 MongoDB,更多关于 MongoDB 的内容详见《MongoDB 笔记》
使用场景
以下场景均可考虑使用 MongoDB 作为数据存储(注:并非必须使用)
- 淘宝用户数据
- 存储位置:数据库
- 特征:永久性存储,修改频度极低
- 游戏装备数据、游戏道具数据
- 存储位置:数据库、Mongodb
- 特征:永久性存储与临时存储相结合、修改频度较高
- 直播数据、打赏数据、粉丝数据
- 存储位置:数据库、Mongodb
- 特征:永久性存储与临时存储相结合,修改频度极高
- 物联网数据
- 存储位置:Mongodb
- 特征:临时存储,修改频度飞速
安装
MongoDB 详细的安装说明详见《MongoDB 安装与使用》 的 《studio3t》 章节
整合 MongoDB 示例
Spring Boot 整合 MongoDB 操作步骤如下:
- 第一,先导入对应技术的整合 starter 坐标
- 第二,配置必要信息
- 第三,使用提供的 API 操作MongoDB
引入依赖
导入 Spring Boot 整合 MongoDB 的坐标 spring-boot-starter-data-redis
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>也可以直接使用 idea 的 Spring Initializr 创建 Spring Boot 项目,在创建模块的时候勾选相应的依赖,归属 NoSQL 分类中

基础配置
在 Spring Boot 项目配置文件 application.yml 中,设置 MongoDB 相关配置
yml
spring:
data:
mongodb:
uri: mongodb://localhost/moon # 指定MongoDB服务的ip与文档库,端口如果是默认的 27017,则可以省略不写操作 MongoDB 需要的配置与其他的 NOSQL 服务一样,最基本的信息都是操作哪一台服务器,区别就是连接的服务器IP地址和端口不同,书写格式不同而已。
基础使用示例
使用 Spring Boot 整合 MongoDB 的专用客户端接口 MongoTemplate 执行相应的操作
java
@SpringBootTest
public class MongoTemplateTest {
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void testSave() {
Book book = new Book();
book.setId(2);
book.setName("好好学习");
book.setType("杂谈");
book.setDescription("这是一本好书");
mongoTemplate.save(book);
}
@Test
public void testFindAll() {
List<Book> books = mongoTemplate.findAll(Book.class);
System.out.println(books);
}
}