Springboot整合mongo
引言
springboot整合是采用原生的mongo-driver 来实现,可以动态链接多个库,无需关注整合springboot,只要自己实现springboot-starter。快速入门文档:http://mongodb.github.io/mongo-java-driver/3.11/driver/getting-started/quick-start/#mongodb-driver-quick-start 。介绍的非常详细,完全可以操作入门。
pom依赖
本文采用的版本号是3.10.2版本
<dependency><groupId>org.mongodb</groupId><artifactId>mongodb-driver-sync</artifactId><version>3.10.2</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.1</version></dependency>
只需要你在springboot框架中引入俩个依赖就可以操作,用原生的去操作更加灵活,个人不介意用mongo-template 用起来很不方便。
代码整合
配置文件参数
1、application.properties文件中加以下参数
server.port= 9009
mongo.properties.userName = bikeBos
#密码我这边不做展示了,自己的mongo 库的密码
mongo.properties.password = ****
mongo.properties.database = bikeBos
2、新增一个spring.factories文件
文件参数:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=
com.example.demo.mongo.MongoConfig
代码实现
采用springboot-starter的形式的去进行实现
package com.example.demo.config;import com.example.demo.dao.MongoDao;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.event.ContextRefreshedEvent;import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;/*** @Author: xiaozhu13539* @Date: 2022/4/27*/
@Configuration
@EnableConfigurationProperties(MongoProperties.class)
public class MongoConfig implements ApplicationListener<ContextRefreshedEvent> {@Resourceprivate MongoProperties mongoProperties;@Resourceprivate MongoDao mongoDao;@Overridepublic void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {mongoDao.buildMongoClient(mongoProperties);}
}
加载的实体参数:
package com.example.demo.config;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;/*** @Author: xiaozhu13539* @Date: 2022/4/27*/
@ConfigurationProperties(prefix = "mongo.properties")
@Data
public class MongoProperties {private String userName;private String password;private String database;private String ip;private Integer port;}
构建mongoClient 和 Dao提供对外的查询方法,这里举例根据主键查询,其余的api根据我上面提供的快速入门来进行封装。
package com.example.demo.dao;import com.alibaba.fastjson.JSONObject;
import com.example.demo.config.MongoProperties;
import com.mongodb.MongoClientSettings;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.*;
import com.mongodb.client.model.Filters;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.springframework.stereotype.Service;import java.util.Arrays;
import java.util.concurrent.ConcurrentHashMap;/*** @Author: xiaozhu13539* @Date: 2022/4/28*/
@Service
public class MongoDao {//缓存client的数据源private final ConcurrentHashMap<String, MongoClient> daoMap = new ConcurrentHashMap<>();/*** client* @param mongoProperties*/public void buildMongoClient(MongoProperties mongoProperties) {String userName = mongoProperties.getUserName();String password = mongoProperties.getPassword();String database = mongoProperties.getDatabase();MongoCredential credential = MongoCredential.createCredential(userName, database, password.toCharArray());MongoClientSettings settings = MongoClientSettings.builder().credential(credential)//.applyToSslSettings(builder -> builder.enabled(true)).applyToClusterSettings(builder ->//ip 是mongo服务器的主机builder.hosts(Arrays.asList(new ServerAddress("127.0.0.1", 27017)))).build();MongoClient mongoClient = MongoClients.create(settings);daoMap.put("test", mongoClient);}/*** 获取注解* @param bikeNo* @return*/public String getDataByUk(String bikeNo) {Bson bson = Filters.eq("bikeNo", "2100009315");MongoClient mongoClient = daoMap.get("test");MongoCollection<Document> mongoCollection = mongoClient.getDatabase("bikeBos").getCollection("bik4c");FindIterable<Document> documents = mongoCollection.find(bson);String result = "";for (Document document : documents) {result = JSONObject.toJSONString(document);break;}return result;}
}
整合很简单,深入得继续去研究mongo的官方文档。
Springboot整合mongo相关推荐
- java开发实战(3):springboot多模块工程整合mongo数据库(mongodb-driver)
接上一篇文章: springboot连接mongo数据库有多种方式:例如 MongoTemplate 使用springboot的模板方法 mongodb-driver 使用数据库驱动操作数据库 使用M ...
- 直接裂开!京东二面被问SpringBoot整合MongoDB,我不会啊
开始进入正题 一.技术介绍 SpringBoot整合MongoDB的实现步骤 一.技术介绍 1.MongoDB是什么? 二.使用步骤 1.MongoDB是什么? MongoDB(来自于英文单词&quo ...
- SpringBoot 整合ElasticSearch全文检索
ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java语言开发的,并作为Apa ...
- SpringBoot整合Graylog做日志收集
日志收集折腾过程 ELK 之前整合过ELK做日志采集,就是Elasticsearch + Logstash + Kibana: Elasticsearch:存储引擎,存放日志内容,利于全文检索 Log ...
- SpringBoot整合第三方技术学习笔记(自用)
SpringBoot整合第三方技术学习笔记 搬运黑马视频配套笔记 KF-4.数据层解决方案 KF-4-1.SQL 回忆一下之前做SSMP整合的时候数据层解决方案涉及到了哪些技术?MySQL数据库与My ...
- SpringBoot整合MongoDB数据库并实现基础CRUD
MongoDB安装教程:MongoDB数据库安装以及将MongoDB设置为系统服务 MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,由C++语言编写.旨为WEB应用提供可扩展的高性 ...
- SpringBoot整合Mongodb(三) 使用MongoTemplate进行连表查询
SpringBoot整合Mongodb(三) 使用MongoTemplate进行连表查询 由于在实际开发项目中,突然涉及到了需要Mongodb 进行连表操作的业务,所以我在私下进行了一波学习. 服务器 ...
- SpringBoot 整合mongoDB实现文章存储
本项目展示了 SpringBoot 整合mongoDB进行文章存储,并实现简单增删改查,关于docker安装MongoDB:Docker 安装 MongoDB_Michael-DYZ的博客-CSDN博 ...
- SpringBoot第九篇: springboot整合Redis
这篇文章主要介绍springboot整合redis,至于没有接触过redis的同学可以看下这篇文章:5分钟带你入门Redis. 引入依赖: 在pom文件中添加redis依赖: <dependen ...
最新文章
- Reveal.js一个用来做WEB演示文稿的框架
- Input type=“file“上传文件change事件只触发一次解决方案
- VSS自动发布站点功能扩展
- JavaScript中正则表达式学习笔记
- [Linux] 020 RPM 包的命名原则与其依赖性
- STM32F103:二.(1)点亮LED
- Vue中,在<template>内进行页面链接跳转
- HDU 1269 迷宫城堡 (强连通分量,常规)
- 什么是ajax?ajax作用是什么?
- 51黑单片机论坛c语言,51黑论坛_51单片机轻松入门—基于STC15W4K系列
- 新增汉字英文数字标点转区位码api
- 2017 4 自考java_自考00831英语语法2017年4月真题及答案【解析版】
- 原生JS实现中文简繁切换
- 蓝桥杯,基础练习 Fibonacci数列(斐波那契数列) C++
- 多种参数的BCH、RS码和(2,1,6)卷积码编码的MATLAB仿真实现
- Datatables表格插件学习
- 安装mysql_python
- MMD初尝试1(骨骼系统)
- intel第6代服务器芯片,Intel第六代处理器 Skylake CPU、GPU、主板完全解析
- P2P流媒体技术方案