Mongodb多数据源配置

57 阅读1分钟
1.创建mongo配置类
@Data
@Configuration
public abstract class MongoConfig {

    private String uri;

    abstract public MongoTemplate getMongoTemplate();

    public SimpleMongoClientDbFactory mongodbFactory() {
        return new SimpleMongoClientDbFactory(uri);
    }
}

这个类的目的是为了配置 MongoDB 连接,并提供一个抽象方法 getMongoTemplate() 供子类实现,用于获取 MongoTemplate 对象

2.创建MongoConfig的实现类
/**
 * prefix需要与配置文件中db1数据源的配置前缀对应
 */
@Configuration
@ConfigurationProperties(prefix = "spring.data.mongodb.db1")
public class MongoOneConfig extends MongoConfig {

    @Primary   //默认会注入此数据源的Template
    @Bean(name = "mongoTemplateOne")
    @Override
    public MongoTemplate getMongoTemplate() {
        return new MongoTemplate(mongodbFactory());
    }
}

如有多个mongodb数据源,可创建多个MongoConfig的实现类

3.在application-xxx.xml文件中配置数据源
data:
  mongodb:
    db1:
      uri: mongodb://username:password@ip:port/source
注:这样就可以实现mongodb的多数据源配置啦!如果只有一个数据源,则不需要上述三个步骤,只需要在application-xxx.xml文件中按照默认配置(如下所示)进行配置即可啦!
data:
  mongodb:
    uri: mongodb://username:password@ip:port/source