好久没写日志了。主要也是没遇到啥想记录的。

这次想配置一个双数据源。 看了一圈百度。 看了一圈官方文档。 介绍也不全面。

磕磕绊绊。参考很多博客。以及看了看源码才弄了好。

秉承着前人摘树后人乘凉的原则。。。。算了 不比比了

直接贴代码。 一共就2步。直接搞定。

帮助到你记得点个赞哦

步骤一:配置文件

  data:mongodb:master:host: 127.0.0.1port: 27017username: usernamepassword: pddatabase: dbtx:host: 127.0.0.2port: 27017username: usernamepassword: pddatabase: db

步骤二:设置配置类,这里需要注意一下。 自己的模式。我的第二个数据源是副本集模式。 如果是集群模式的话 换一下枚举即可

package com.fp.pileorder.config;import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;import com.mongodb.MongoClientSettings;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.connection.ClusterConnectionMode;
import com.mongodb.connection.ClusterType;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.mongo.MongoProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;@Configuration
public class MongodbConfiguration {@Primary@Bean(name = "mongoMasterProperties")@ConfigurationProperties(prefix = "spring.data.mongodb.master")public MongoProperties mongoMasterProperties () {return new MongoProperties();}@Bean(name = "mongoTxProperties")@ConfigurationProperties(prefix = "spring.data.mongodb.tx")public MongoProperties mongoTxProperties () {return new MongoProperties();}@Primary@Bean("mongoTemplate")public MongoTemplate mongoMasterTemplate (@Qualifier("mongoMasterProperties") MongoProperties mongoProperties) {return new MongoTemplate(mongoDbFactory(mongoProperties, false));}@Bean("mongoTxTemplate")public MongoTemplate mongoTxTemplate (@Qualifier("mongoTxProperties") MongoProperties mongoProperties) {String host = mongoProperties.getHost();String[] split = host.split(",");return new MongoTemplate(mongoDbFactory(mongoProperties, split.length > 1 ? true : false));}public MongoDbFactory mongoDbFactory (MongoProperties mongoProperties, boolean isCluster) {ClusterConnectionMode clusterConnectionMode;ClusterType clusterType;List<ServerAddress> serverAddressList = new ArrayList<>();//是否是集群模式if (isCluster) {clusterConnectionMode = ClusterConnectionMode.MULTIPLE;clusterType = ClusterType.REPLICA_SET;String host = mongoProperties.getHost();String[] split = host.split(",");for (String urlHost : split) {serverAddressList.add(new ServerAddress(urlHost, mongoProperties.getPort()));}} else {clusterConnectionMode = ClusterConnectionMode.SINGLE;clusterType = ClusterType.STANDALONE;ServerAddress serverAddress = new ServerAddress(mongoProperties.getHost(), mongoProperties.getPort());serverAddressList.add(serverAddress);}MongoCredential credential = MongoCredential.createCredential(mongoProperties.getUsername(), mongoProperties.getDatabase(),mongoProperties.getPassword());MongoClientSettings setting = MongoClientSettings.builder().credential(credential).applyToClusterSettings(builder ->builder.hosts(serverAddressList).mode(clusterConnectionMode).requiredClusterType(clusterType)).build();MongoClient mongoClient = MongoClients.create(setting);return new SimpleMongoClientDbFactory(mongoClient, mongoProperties.getDatabase());}}

步骤三:直接使用 ,想在哪使用 注入进去就行了

  @Resource@Qualifier("mongoTemplate")private MongoTemplate mongoTemplate;@Resource@Qualifier("mongoTxTemplate")private MongoTemplate mongoTxTemplate;

SpringBoot-Mongodb双数据源配置相关推荐

  1. springboot+dynamic多数据源配置

    springboot+dynamic多数据源配置 配置 使用 springboot+dynamic多数据源配置 来源:https://mp.baomidou.com/guide/dynamic-dat ...

  2. springboot中druid数据源配置无效的问题和jar包找不到问题

    springboot中druid数据源配置无效的问题 阿里云的仓库 链接: 阿里云仓库. 自己在springboot项目中,引入druid的依赖,希望引入druid数据源. 但是idea中,虽然在这个 ...

  3. springboot动态多数据源配置和使用(二)

    很久之前写一篇静态的springboot多数据源配置,一直没写下篇,这里补充一下自己用动态多数据源的场景和开发逻辑. 之前说的静态多数据源是每个数据源配置一套mapper,现在说说如何动态多数据源共用 ...

  4. springboot动态多数据源配置和使用(从数据库读取数据源配置)(三)

    上两遍已经描述了动态多数据源的原理和基础实现了,前面的数据源配置都是从application.yml中配置多数据源的,这里再拓展补充一下其他场景,如何读取数据源不从application.yml中配置 ...

  5. SpringBoot Redis多数据源配置

    个人博客纯净版 SpringBoot Redis多数据源配置 | 代码搬运工 此处提供了一个SpringBoot starter插件 gitee地址 spring-boot-starter-dynam ...

  6. springBoot 双数据源配置 (Oracle+ SQL sever)主数据源配置setMapperLocations多个路径

    1.添加pom依赖 (部分) <!--添加 阿里连接池 支持--><dependency><groupId>com.alibaba</groupId>& ...

  7. 双数据源配置(一个项目中链接两个数据库)

    resin文件配置(我用的resin,其他的可自行配置) <database><jndi-name>jdbc/OracleDB</jndi-name><dri ...

  8. springboot+mybatis多数据源配置

    目录 1.前言 2.多数据源配置 2.1  AbstractRoutingDataSource 2.2.首先maven依赖 2.3 数据源配置 2.4 mybatis配置 2.5 设置数据源的路由ke ...

  9. mongodb多数据源配置

    引入spring-data 依赖, 注意引入版本, 不同版本对应的api方法不一样 <dependency><groupId>org.springframework.boot& ...

最新文章

  1. cellpadding,cellspacing都是废弃的属性了,早已不推荐使用,最新的html5里已经彻底去掉了这些表现型的属性。
  2. 35.页面置换算法有哪些?
  3. 推荐系统常用术语 [ACM暑校]
  4. html5移动端底部效果,spring mvc +HTML5实现移动端底部上滑异步加载更多内容分页效果...
  5. 如何从URL查询字符串获得/附加视图参数(示例)?
  6. leetcode162. 寻找峰值(二分法)
  7. html表单怎么设置编码,form 表单 设置编码和页面编码
  8. [独家放送]Unity2019更新规划速览,将有官方的可视化编程!
  9. 2.6 更多导数的例子
  10. C语言学习笔记---字符串转换函数
  11. Sublime Text 收藏笔记
  12. mysql 数据库备份的多种方式
  13. python在线diff工具在哪_使用Python创建你自己的diff-tool
  14. Win装linux双系统教程
  15. 魔兽世界服务端linux,LightsHope/vMangos – 基于Ubuntu服务器的WOW私服搭建教程
  16. Qt信号与槽机制原理及优缺点
  17. 抖音seo/抖音搜索排名系统/抖音矩阵优化/抖音seo源码开发,轻松进前十
  18. Python 制作动态图
  19. 子目录和子域名哪个好?子目录和子域名如何利用seo优化?
  20. 使用uvm_report_catcher屏蔽掉特定的uvm_error/uvm_warning

热门文章

  1. Bottom Sheets
  2. openwrt 格式化_OPENWRT路由固件入门食用教程S2:磁盘挂载及分区,网络共享,脱机下载。...
  3. vs2010打开需要安装 service pack1
  4. 用计算机打字用哪种方法最好,打字高手练习(快速练习好电脑打字的方法)
  5. VTK笔记-切面重建-使用交互器更新断层图的奇异现象的问题排查
  6. 第三方支付企业风控体系简析——拉卡拉支付
  7. 紫光软件php面试题,紫光展锐面试试题是什么?紫光展锐怎么面试的?
  8. win7防火墙怎么关_win7系统防火墙开启失败怎么办【解决方法】
  9. 第十五周作业——ZJM与纸条
  10. 2022年提高程序员在Boss直聘找工作时在线简历邀请面试概率的几点思考