SpringBoot 集成多 MongoDB 实例的配置实践
在实际开发中,我们常遇到需要同时连接多个 MongoDB 集群的场景。Spring Boot 默认只支持单数据源配置,通过自定义 Bean 和排除自动配置,我们可以灵活地管理多个数据库实例。
1. 引入依赖
首先确保项目中引入了 Spring Data MongoDB 的 Starter 依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2. 应用配置
在 application.yml 中定义两个独立的 MongoDB 连接信息,通过不同的前缀区分命名空间:
spring:
application:
name: double-mongo
profiles:
active: dev
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
server:
port: 8008
sys:
mongodb:
one:
uri: mongodb://user01:[email protected]:10135,192.168.1.3:10135/mongo01
two:
uri: mongodb://user02:[email protected]:10135,192.168.1.3:10135/mongo02
3. 配置类编写
主数据源配置
我们需要创建一个配置类来定义第一个(主)MongoDB 实例。这里的关键是设置 @Primary 注解,确保在没有指定名称时默认使用这个模板。
public {
MongoClient mongo;
MongoTemplate {
(mongoDbFactory, converter);
}
MongoDbFactory {
options.getIfAvailable();
(properties, environment);
.mongo = mongoClientFactory.createMongoClient(_options);
(.mongo, properties.getMongoClientDatabase());
}
{
(.mongo != ) {
.mongo.close();
}
}
MongoProperties {
();
}
}

