Noob Tube
Noob Tube

Reputation: 11

how to connect 2 mongodb databases in spring mvc

Hi I have this config file to connect to my remote mongodb service now I need to connect 1 more db simultaneously but I don't know how can anyone help?

@Configuration
public class MongoConfig{
  
    @Bean
    public MongoDbFactory mongoDbFactory(){
        MongoClientURI uri = new MongoClientURI("mongodb://user:pass@localhost:27017/?authSource=admin");
  

        return new SimpleMongoDbFactory(new MongoClient(uri), "DataBuild");
       
    }
  
    @Bean
    public MongoOperations mongoOperations(){
        return new MongoTemplate(mongoDbFactory());
       
    }
    
    @Bean
    MongoTransactionManager transactionManager(MongoDbFactory dbFactory) {
      return new MongoTransactionManager(dbFactory);
    }
}

Upvotes: 1

Views: 129

Answers (1)

Italo Borssatto
Italo Borssatto

Reputation: 15709

Take a look in this tutorial. Here is the @Configuration class they use:

@Configuration
public class MultipleMongoConfig {
    @Primary
    @Bean(name = "newdb1Properties")
    @ConfigurationProperties(prefix = "spring.data.mongodb.newdb1")
    public MongoProperties getNewDb1Props() throws Exception {
        return new MongoProperties();
    }

    @Bean(name = "newdb2Properties")
    @ConfigurationProperties(prefix = "spring.data.mongodb.newdb2")
    public MongoProperties getNewDb2Props() throws Exception {
        return new MongoProperties();
    }

    @Primary
    @Bean(name = "newdb1MongoTemplate")
    public MongoTemplate newdb1MongoTemplate() throws Exception {
        return new MongoTemplate(newdb1MongoDatabaseFactory(getNewDb1Props()));
    }

    @Bean(name ="newdb2MongoTemplate")
    public MongoTemplate newdb2MongoTemplate() throws Exception {
        return new MongoTemplate(newdb2MongoDatabaseFactory(getNewDb2Props()));
    }

    @Primary
    @Bean
    public MongoDatabaseFactory newdb1MongoDatabaseFactory(MongoProperties mongo) throws Exception {
        return new SimpleMongoClientDatabaseFactory(
                mongo.getUri()
        );
    }

    @Bean
    public MongoDatabaseFactory newdb2MongoDatabaseFactory(MongoProperties mongo) throws Exception {
        return new SimpleMongoClientDatabaseFactory(
                mongo.getUri()
        );
    }

}

Upvotes: 1

Related Questions