Spring-data-mongodb connect to multiple databases in one Mongo instance

后端 未结 6 2126
死守一世寂寞
死守一世寂寞 2020-12-07 23:12

I am using the latest spring-data-mongodb (1.1.0.M2) and the latest Mongo Driver (2.9.0-RC1). I have a situation where I have multiple clients connecting to my application a

6条回答
  •  有刺的猬
    2020-12-07 23:29

    I used different DB using java Config, this is how i did it:

    @Bean 
    public MongoDbFactory mongoRestDbFactory() throws Exception { 
        MongoClientURI uri=new MongoClientURI(environment.getProperty("mongo.uri")); 
        return new SimpleMongoDbFactory(uri);
    }
    
    @Override
    public String getDatabaseName() {
        return "rest";
    }
    
    @Override
    public @Bean(name = "secondaryMongoTemplate") MongoTemplate mongoTemplate() throws Exception{ //hay que cambiar el nombre de los templates para que el contendor de beans sepa la diferencia  
        return new MongoTemplate(mongoRestDbFactory());    
    }
    

    And the other was like this:

    @Bean 
    public MongoDbFactory restDbFactory() throws Exception {
        MongoClientURI uri = new MongoClientURI(environment.getProperty("mongo.urirestaurants")); 
        return new SimpleMongoDbFactory(uri);
    }
    
    @Override
    public String getDatabaseName() {
        return "rest";
    }
    
    @Override
    public @Bean(name = "primaryMongoTemplate") MongoTemplate mongoTemplate() throws Exception{ 
        return new MongoTemplate(restDbFactory());    
    }
    

    So when i need to change my database i only select which Config to use

提交回复
热议问题