spring data mongodb 多数据源连接

Spring Boot集成Spring Data MongoDB实现MongoDB操作 MongoDB从4.0开始支持事务,Spring Data MongoDB也支持事务管理,但需要配置事务管理器。文件中添加Spring Data MongoDB的依赖。:确保MongoDB的版本与Spring Data MongoDB的版本兼容。如果你使用的是Spring Boot 2.x,依赖类似,但版本号会有所不同。注解标注,表示这是一个MongoDB的集合(Collection)。的方法来测试MongoDB的CRUD操作。:如果需要高性能查询,可以在实体类中使用。,并使用它来操作MongoDB。 阅读详情

参考链接:(3条消息) mongo多数据源教程 mongoTemplate 多数据源_ccubee的博客-优快云博客_mongotemplate 多数据源 参考链接:(3条消息) Spring Boot配置MongoDB多数据源_张小凡vip的博客-优快云博客 

1、依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

2、配置,副本集模式连接mongo,readPreference=primary才可以使用事务

spring:
  data:
    mongodb:
      自定义参数1:
        uri: mongodb://账号:密码@ip:端口号?slaveOk=true&replicaSet=xxx&write=1&readPreference=primary&connectTimeoutMS=30000&socketTimeoutMS=30000
        database: 数据库名1
      自定义参数2:
        uri: mongodb://账号:密码@ip:端口号?slaveOk=true&replicaSet=xxx&write=1&readPreference=primary&connectTimeoutMS=30000&socketTimeoutMS=30000
        database: 数据库名2

3、 继承AbstractMongoClientConfiguration ,第一个数据源指定一下  @Primary,第二个数据源同第一个一样,无需指定  @Primary

@Setter
@Getter
@Configuration
@ConfigurationProperties(prefix = "spring.data.mongodb.xxxx")
@Component
public class MongoConfig extends AbstractMongoClientConfiguration {

    private String uri;

    private String database;

    @Override
    protected String getDatabaseName() {
        return database;
    }
    @Override
    public MongoClient mongoClient() {
        return MongoClients.create(uri);
    }


    @Primary
    @Override
    @Bean("xxxxMongoDbFactory")
    public MongoDatabaseFactory mongoDbFactory() {
        return new SimpleMongoClientDatabaseFactory(mongoClient(), getDatabaseName());
    }

    @Primary
    @Bean(name = "xxxxTemplate")
    public MongoTemplate getMongoTemplate(@Qualifier("xxxxMongoDbFactory") MongoDatabaseFactory mongoDbFactory,
                                          @Qualifier("xxxxMappingMongoConverter") MappingMongoConverter mappingMongoConverter) throws Exception {
        return new MongoTemplate(mongoDbFactory,mappingMongoConverter);
    }

    @Primary
    @Bean("xxxxMongoTransactionManager")
    public MongoTransactionManager transactionManager(
            @Qualifier("xxxxMongoDbFactory") MongoDatabaseFactory mongoDbFactory){
        return new MongoTransactionManager(mongoDbFactory);
    }


    @Primary
    @Bean("xxxxMongoMappingContext")
    public MongoMappingContext mongoMappingContext() {
        MongoMappingContext mappingContext = new MongoMappingContext();
        return mappingContext;
    }

    @Primary
    @Bean("xxxxMappingMongoConverter") //使用自定义的typeMapper去除写入mongodb时的“_class”字段
    public MappingMongoConverter mappingMongoConverter(@Qualifier("xxxxMongoDbFactory") MongoDatabaseFactory mongoDbFactory,
                                                       @Qualifier("xxxxMongoMappingContext") MongoMappingContext mongoMappingContext) throws Exception {
        DefaultDbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
        MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext);
        converter.setTypeMapper(new DefaultMongoTypeMapper(null));
        return converter;
    }

}

4、使用

@Autowired
private MongoTemplate mongoTemplate;


@Autowired
@Qualifier("xxxTemplate")
private MongoTemplate xxxMongoTemplate;

 第二个数据源指定一下@Qualifier("xxxTemplate"),第一个数据源可以默认,也可指定。

注意,此时事务回滚不能在两个数据源中同时生效

MongoDb java服务连接池配置 记录 properties yml 文件配置方式 针对配置单独一个个设置 host ip name password 等 可以自由设置连接池配置 但是貌似不方便设置副本集配置 目前有uri 链接 直连 可以在路径中设置 对应db 以及 副本集相关读写偏好 示例: spring.data.mongodb.uri=mongodb://数据库名字:数据库密码@ip:27017/对应db?rea... 阅读详情

相关推荐

在SPRING DATA MONGODB中使用聚合统计查询

在SQL语句中如要做统计一般是这种方式: SELECT ..,SUM(1) FROM .. WHERE .. GROUP BY .. HAVING .. SORT .. 在MONGODB中的架构图: 在SPRING DATA MONGODB中是这样写的: public class VideoRepositoryImpl implements VideoRepositor

weihainan 2万+

Spring Data MongoDB使用

概述 参考 Spring Data MongoDB更新

抽象的螺旋 3187

Spring data Mongodb

Spring data MongoDBSpring Data MongoDB 官方给予的简介截图如下:翻译为:Spring Data MongoDB 是 Spring Data项目的一部分,旨在为新的数据存储提供一个熟悉且一致的机遇spring的编程模型,同时保留存储特有的特征和功能。Spring data MongoDB 实例第一步:新建一个Spring工程。过程略。第二步:添加相应的依赖包。p

wojiushimogui的博客 1279

Spring Data MongoDB

Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库。 1.pom.xml中引入依赖(本项目为springboot项目) &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spri...

zzz127333092的博客 1641

MongoDB集成Spring Data

本文介绍MongoDB与Spring Data框架的集成。

残缺的孤独 1913

spring data mongodb

spring boot项目,使用springdata来操作数据库mongodb

SpringBoot 2.7教程:SpringBoot 整合 MongoDB 项目搭建-2022年最新图文版本

目录一、新建项目springboot-mongodb,项目结构如下二、确认pom文件依赖三、配置application.properties四、创建实体User五、创建UserService六、创建UserController七、创建配置类八、测试结果

架构师小冯的专栏 4800

Paypal开发者中心获取“ClientId”和“ClientSecret”参数

正式环境设置 1、登录到 paypal开发者中心 网址:https://developer.paypal.com/developer/ 点击右上角登录按钮登录 2、左侧栏 - 我的应用程序和凭证 - 点击“创建新应用” 新注册的paypal账号,需要进行邮箱验证,验证通过后,需要等待一段时间(或重新登录),才会出现相关设置项位置 验证邮箱通过后,点击创建新应用 3、按提示填写,保存创建应用 4、点击刚创建的应用进入应用详情页 5、应用详情页获得网站开发人员所需要的“ClientId”和“Client

龚清林的博客 1万+

Spring Boot之数据库访问

jdbcTemplate Spring Boot中使用JdbcTemplate访问数据库-allalongx SpringBoot使用JdbcTemplate-dalaoyang SpringBoot 实战 (六) | 用 JdbcTemplates 访问 Mysql-一个优秀的废人 Spring-data-jpa Spring Boot中使用Spring-data-jpa让数据访问更简单、...

weixin_34166472的博客 165

如何下载安装Qt各个版本?(2025-4-28更新)

本文将教您快速获取Qt各版本安装包!妈妈再也不用担心我找不到Qt安装包了!

程序区 5110

魔兽世界怀旧服宏命令全解析:从自动换装到智能判定,老玩家才知道的黑科技

本文全面解析魔兽世界怀旧服宏命令的高级应用,从自动换装到智能判定,揭秘老玩家专属的黑科技技巧。深入探讨怀旧服特有的宏命令机制,包括施法队列、装备切换系统和职业专属技巧,帮助玩家在经典旧世版本中提升战斗效率。

weixin_29230865的博客 724

Spring Data 2026 最佳实践:简化数据访问

Spring Data 2026 带来了许多令人兴奋的新特性和改进,包括反应式数据访问增强、查询增强、性能改进、多数据源支持和扩展支持。通过合理地应用这些新特性和最佳实践,我们可以更有效地简化数据访问,提高系统性能。这其实可以更优雅一点。希望这篇文章能帮助大家更好地理解和实践 Spring Data 2026 的最佳实践。如果你有任何问题,欢迎在评论区留言。关于作者:我是 Alex,一个在 优快云 写 Java 架构思考的暖男。喜欢手冲咖啡,养了一只叫"Java"的拉布拉多。

alex_goden的博客 4261

行人重识别技术(Re-ID)概述、研究现状以及相关数据集下载

ReID技术概述什么是ReID一般流程Re-ID特点研究现状难点数据集reid常用数据集以及下载链接评价指标实现思路研究方式基于表征学习基于度量学习基于局部特征全局特征切片姿态基于视频序列RQEN基于GANCamStyleDG-NetGAN总结对比未来方向建议文献 什么是ReID 行人重识别是指利用计算机视觉技术,判断在不同时间段、不同监控下出现的行人图像是否属于同一人员的技术。行人重识别是最近几年在视频分析领域下热门的研究领域,可以看做是人脸识别应用的拓展。现在大街上的监控较多,由于设备质量、成像光线、.

留缘的博客 1万+

Spring全家桶--数据库相关

目录 如何配置数据源 Spring Boot 做了哪些配置 数据源相关配置属性 数据库连接池 HikariCP Alibaba Druid 通过 Spring JDBC 访问数据库 了解 Spring 的抽象 Spring 的事务抽象 Spring 的 JDBC 异常抽象 O/R Mapping 实践 常⽤的 Bean 注解 认识 Spring Data JPA Hibernate Java Persistence API Spring Data...

风起未来 984

vivado生成及调用自定义IP的方法

开发环境:vivado 2018.2 1.将整个工程封装为自定义IP 将整个工程封装为自定义IP主要有以下步骤: 步骤1.选中工程中的top模块。点击Tools ------> Create and Package New IP,如图1所示 图1 步骤2.弹出界面后,点击next至图2界面,选择Package your current project,然后继续点击next 图2 步骤3.选择生成的IP路径,如图3所示。这个路径就是后续添加该IP的路径 图3 步骤4.继续点击next,然后选择fi

进击的阿日比 4726

ARFoundation系列讲解 - 24 锚点

一、添加平面检测和平面可视化 请参考 ARFounnation快速入门-08平面检测 案例 二、添加射线检测 1.在AR Session Origin 组件上添加ARRaycastManager 脚本

a451319296的博客 4874

Spring Data 2026 最佳实践:构建高效的数据访问层

Spring Data 作为 Spring 生态系统的重要组成部分,提供了统一的数据访问抽象,简化了数据访问层的开发。随着版本的不断演进,Spring Data 2026 带来了许多新特性和改进。作为一名架构师,我认为 Spring Data 不仅是技术工具,更是构建高效数据访问层的关键。Spring Data 2026 是一个功能强大、设计优雅的框架,它为我们提供了统一、高效的数据访问解决方案。通过合理应用 Spring Data 的最佳实践,我们可以构建更优雅、更高效的数据访问层。

alex_goden的博客 4450

Jetson Nano之CSI摄像头操作方法

jetson端csi摄像头的应用方法

ZONGXP的博客 1万+

spring-data-mongodb一个系统xml文件里面配置两个数据源

spring-data-mongodb一个系统xml文件里面配置两个数据源 参考文档如下: http://www.iteye.com/problems/92789 http://stackoverflow.com/questions/12078669/spring-data-mongodb-connect-to-multiple-databases-in-one-mongo-ins...

weixin_30664615的博客 302

unitree-G1外接 USB 麦克风完整配置指南

首先,将type-c麦克风插入G1机器人的USB口后,记录下USB麦克风的卡号(card)和设备号(device),通常显示为 card 1: Device [USB Audio Device]

m0_47999117的博客 589

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LOOK:SpringBoot 配置 MongoDB 多数据源

import lombok.Setter;import org.springframework.data.mongodb.MongoDbFactory;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.SimpleMongoDbFactory;import java.util.ArrayList;import java.util.List;@Gette

erghtt的博客 871

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

springboot集成mongodb 连接池 多数据库源,源码demo

上一篇介绍了 springboot集成mongodb 多数据库源切换 源码demo 开发环境: windows 7 idea windows64 mongodb 如果没安装运行 点这里 navicat for mongodb 下面介绍用的是这个图形工具,命令行客户端或其他图形工具都是可以的,如果需要这个 点这里 创建mongodb测试的数据 首先连接mongodb 新建第一个mongodb数据库 ...

a704397849的博客 4879

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【开发心得】spring-data-mongo多数据源配置

两份配置基本一致,主要区别一个是primaryxxx,一个是secondaryxxx,同时primaryConfig中,需要对MongoProperties,MongoDatabaseFactory,MongoTemplate 增加@Primary,确保单例,同时确保application.yml中不要出现spring.mongo,否则会报错多个Bean问题。结语: 使用Mongo多数据库的情况很少,所以一般没有样例,或者样例很老,这里特此写一篇文档,当做笔记,也为后来人开路。

清风唱诗人的博客 1148

Spring Data MongoDB的简单使用

MongoDB官网也有各语言所用的API,当然也有Java的了。但是平日写的东西大部分是基于Spring框架的,自然希望对于数据库的操作也在Spring的掌控之下。前几日才Spring的官网看到了SPRING DATA MONGODB,对此很感兴趣稍微试了一下。   10月24日发布的是Spring Data MongoDB 1.0.0.M5 Released。自然还需要Spring Fra

milife2012的专栏 4729

MongoDB进阶(八)Spring整合MongoDB(Spring Data MongoDB)

最近比较忙,忙的都没空理csdn了,今天我继续迈着魔鬼般的步伐,摩擦摩擦……总结下最近学到的MongoDB的知识。 1.认识Spring Data MongoDB         之前还的确不知道Spring连集成Nosql的东西都实现了,还以为自己又要手动封装一个操作MongoDB的API呢,结果就发现了Spring Data MongoDB。不愧是Spring,真是给了我们

代码与酒 3万+

Spring Boot中的Mongodb多数据源扩展

在日常工作中,我们通过Spring Data Mongodb来操作Mongodb数据库,在Spring Boot中只需要引入spring-boot-starter-data-mongodb即可。 然后配置连接信息如下: spring.data.mongodb.uri=mongodb://localhost:27017/test 或者 pring.data.mongodb.authenticati...

u010889990的专栏 1198
上一篇: Aggregation-聚合查询
下一篇: java单例实现
Coco_淳
博客等级 码龄10年 40粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值