MongoDB如何添加多数据源

文章介绍了如何在项目中配置多个MongoDB数据源,特别是在有数据迁移需求时。通过在yaml文件中添加额外的数据源信息,然后创建并配置第二个MongoTemplate。关键步骤包括设置hisUri,创建MongoTemplate实例,以及确保在使用自定义转换器时正确配置MongoConverter,以避免转换器在第二个数据源上失效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于项目有需求做MongoDB的数据迁移,所以需要配置多个数据源,其实可以通过配置多个 MongoTemplate 来实现。
首先在yaml文件中加上第二个数据源的信息
图片.png

spring:
  data:
    mongodb:
      uri: mongodb://xxx:xxx@xx.xx.xx.xx:27017/xxx
      his-uri: mongodb://xxx:xxx@xx.xx.xx.xx:27017/xxx-his

然后增加第二个数据源的 MongoTemplate 配置

@Configuration
@ConfigurationProperties(prefix = "spring.data.mongodb")
@Data
public class HisMongoConfig {

    private String hisUri;

    @Bean(name = "hisMongoTemplate")
    public MongoTemplate getMongoTemplate(MongoCustomConversions mongoCustomConversions) {
        MongoTemplate mongoTemplate = new MongoTemplate(new SimpleMongoClientDbFactory(hisUri));
        //如果配置了自己的转换器,需要加下面这段代码,不然转换器会失效
        MappingMongoConverter mongoMapping = (MappingMongoConverter) mongoTemplate.getConverter();
        mongoMapping.setCustomConversions(mongoCustomConversions);
        mongoMapping.afterPropertiesSet();
        return mongoTemplate;
    }
}

这里需要注意的是,如果配置了自己的转换器,必须要加上12-14行的代码,不然转换器在第二个数据源会失效。
然后操作第二个数据源的时候,注入 hisMongoTemplate 就可以了

@Autowired
@Qualifier("hisMongoTemplate")
private MongoTemplate hisMongoTemplate;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天进步亿点点的小码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值