引言

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相关推荐

  1. java开发实战(3):springboot多模块工程整合mongo数据库(mongodb-driver)

    接上一篇文章: springboot连接mongo数据库有多种方式:例如 MongoTemplate 使用springboot的模板方法 mongodb-driver 使用数据库驱动操作数据库 使用M ...

  2. 直接裂开!京东二面被问SpringBoot整合MongoDB,我不会啊

    开始进入正题 一.技术介绍 SpringBoot整合MongoDB的实现步骤 一.技术介绍 1.MongoDB是什么? 二.使用步骤 1.MongoDB是什么? MongoDB(来自于英文单词&quo ...

  3. SpringBoot 整合ElasticSearch全文检索

    ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java语言开发的,并作为Apa ...

  4. SpringBoot整合Graylog做日志收集

    日志收集折腾过程 ELK 之前整合过ELK做日志采集,就是Elasticsearch + Logstash + Kibana: Elasticsearch:存储引擎,存放日志内容,利于全文检索 Log ...

  5. SpringBoot整合第三方技术学习笔记(自用)

    SpringBoot整合第三方技术学习笔记 搬运黑马视频配套笔记 KF-4.数据层解决方案 KF-4-1.SQL 回忆一下之前做SSMP整合的时候数据层解决方案涉及到了哪些技术?MySQL数据库与My ...

  6. SpringBoot整合MongoDB数据库并实现基础CRUD

    MongoDB安装教程:MongoDB数据库安装以及将MongoDB设置为系统服务 MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,由C++语言编写.旨为WEB应用提供可扩展的高性 ...

  7. SpringBoot整合Mongodb(三) 使用MongoTemplate进行连表查询

    SpringBoot整合Mongodb(三) 使用MongoTemplate进行连表查询 由于在实际开发项目中,突然涉及到了需要Mongodb 进行连表操作的业务,所以我在私下进行了一波学习. 服务器 ...

  8. SpringBoot 整合mongoDB实现文章存储

    本项目展示了 SpringBoot 整合mongoDB进行文章存储,并实现简单增删改查,关于docker安装MongoDB:Docker 安装 MongoDB_Michael-DYZ的博客-CSDN博 ...

  9. SpringBoot第九篇: springboot整合Redis

    这篇文章主要介绍springboot整合redis,至于没有接触过redis的同学可以看下这篇文章:5分钟带你入门Redis. 引入依赖: 在pom文件中添加redis依赖: <dependen ...

最新文章

  1. Reveal.js一个用来做WEB演示文稿的框架
  2. Input type=“file“上传文件change事件只触发一次解决方案
  3. VSS自动发布站点功能扩展
  4. JavaScript中正则表达式学习笔记
  5. [Linux] 020 RPM 包的命名原则与其依赖性
  6. STM32F103:二.(1)点亮LED
  7. Vue中,在<template>内进行页面链接跳转
  8. HDU 1269 迷宫城堡 (强连通分量,常规)
  9. 什么是ajax?ajax作用是什么?
  10. 51黑单片机论坛c语言,51黑论坛_51单片机轻松入门—基于STC15W4K系列
  11. 新增汉字英文数字标点转区位码api
  12. 2017 4 自考java_自考00831英语语法2017年4月真题及答案【解析版】
  13. 原生JS实现中文简繁切换
  14. 蓝桥杯,基础练习 Fibonacci数列(斐波那契数列) C++
  15. 多种参数的BCH、RS码和(2,1,6)卷积码编码的MATLAB仿真实现
  16. Datatables表格插件学习
  17. 安装mysql_python
  18. MMD初尝试1(骨骼系统)
  19. intel第6代服务器芯片,Intel第六代处理器 Skylake CPU、GPU、主板完全解析
  20. P2P流媒体技术方案

热门文章

  1. 会议音频处理器(8进8出)
  2. 计算机网络中端到端与点到点的区别
  3. OBC车载充电机6.6kw,国内OBC车载充电机 硬件原理图和软件源码符合15年国标
  4. 地铁bas服务器系统,浅谈城市轨道交通BAS系统的发展
  5. 可穿戴设备将在2023年出现反弹,苹果Find My助力市场增长
  6. 远程控制电脑软件VNC安装使用教程:Windows系统
  7. html中form表达中的onsubmit事件
  8. Android如何获取当前连接wifi的信道?
  9. Elsevier 期刊 Latex 投稿模板
  10. 想知道有声读物应该怎么做吗