MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak korzystać z wielu baz danych mongodb w aplikacji Spring Boot?

Wykonaj poniższe czynności, aby skonfigurować wiele źródeł danych mongodb.

  1. Zdefiniuj podstawowe i drugorzędne właściwości mongodb, jak poniżej w application.properties, zastąp nimi swoje dane bazy danych:

    ######Primary Mongo DB########################
    spring.data.mongodb.host=localhost
    spring.data.mongodb.database=primary
    spring.data.mongodb.port=27017
    spring.data.mongodb.password=*******
    spring.data.mongodb.username=*******
    
    ###########Secondary MongoDB#####################
    mongodb.host=localhost
    mongodb.port=27017
    mongodb.database=secondary
    mongodb.username=******
    mongodb.password=******
    
  2. Teraz dodaj wiele konfiguracji Mongo Db.

    @Configuration
    public class MultipleMongoConfig {
    
    @Primary
    @Bean(name = "primary")
    @ConfigurationProperties(prefix = "spring.data.mongodb")
    public MongoProperties getPrimary() {
        return new MongoProperties();
    }
    
    @Bean(name = "secondary")
    @ConfigurationProperties(prefix = "mongodb")
    public MongoProperties getSecondary() {
        return new MongoProperties();
    }
    
    @Primary
    @Bean(name = "primaryMongoTemplate")
    public MongoTemplate primaryMongoTemplate() throws Exception {
        return new MongoTemplate(primaryFactory(getPrimary()));
    }
    
    @Bean(name = "secondaryMongoTemplate")
    public MongoTemplate secondaryMongoTemplate() throws Exception {
        return new MongoTemplate(secondaryFactory(getSecondary()));
    }
    
    @Bean
    @Primary
    public MongoDbFactory primaryFactory(final MongoProperties mongo) throws Exception {
        return new SimpleMongoDbFactory(new MongoClient(mongo.getHost(), mongo.getPort()),
                mongo.getDatabase());
    }
    
    @Bean
    public MongoDbFactory secondaryFactory(final MongoProperties mongo) throws Exception {
        return new SimpleMongoDbFactory(new MongoClient(mongo.getHost(), mongo.getPort()),
                mongo.getDatabase());
    }
    

    }

  3. Teraz włącz EnableMongoRepositories dla podstawowego i dodatkowego. upewnij się, że zmieniłeś basePackages = "com.example.springbootmultipledatasource.primary.repository" Twój pakiet repozytorium tutaj

    @Configuration
    @EnableMongoRepositories(basePackages = 
    "com.example.springbootmultipledatasource.primary.repository",
        mongoTemplateRef = "primaryMongoTemplate")
     public class PrimaryMongoConfig {
    
     }
    

Wtórny szablon Mongo:Upewnij się, że zmieniłeś pakiet wtórnego repozytorium tutaj basePackages = "com.example.springbootmultipledatasource.secondary.repository

    @Configuration
    @EnableMongoRepositories(basePackages = "com.example.springbootmultipledatasource.secondary.repository",
        mongoTemplateRef = "secondaryMongoTemplate")
   public class SecondaryMongoConfig {
   }

Teraz możesz stworzyć swój dokument, repozytorium, usługę, kontroler i jesteś gotowy. Poniżej znajduje się struktura mojego projektu, którą możesz utworzyć lub mieć inną.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Powolne zapytanie MongoDB:czy możesz wyjaśnić dlaczego?

  2. Maskowanie danych osobowych w MongoDB i innych bazach danych NoSQL za pośrednictwem…

  3. Unikalny indeks w mongoDB 3.2 ignorujący wartości null

  4. Jak poprawnie wykonać HAVING w MongoDB GROUP BY?

  5. Aktualizacja i wyszukiwanie struktury osadzania Mongodb?