2017-05-09 5 views
1

私のアプリケーションでは、スプリングデータのmongoリポジトリとスプリングブートを使用しています。単一のデータベースの場合は、application.propertiesにdb構成を追加します。別のデータベースを追加する必要がある場合、どうすれば追加できますか?そして、どのデータベースに対してどのデータモデル/リポジトリがどのデータベースであるかをSpringにどのように伝えますか?mongodb用のスプリングブートとスプリングデータを使用して複数のデータベースに接続する方法

ありがとうございました!

+0

のbasePackages属性に言及したパッケージで、リポジトリのクラスがあることを確認してくださいあなたYMLにこのような何かを持っています。 Check http://stackoverflow.com/questions/27614301/spring-boot-multiple-datasource – Bhargav

+0

[このGithubリポジトリ](https://github.com/binarycodifier/multiple-mongodb-databases-using-spring-data)を参照してください。 )の例を示します。 – manish

+0

[Spring起動と2つのデータソースの設定と使用]の可能な複製(http://stackoverflow.com/questions/30337582/spring-boot-configure-and-use-two-datasources) –

答えて

0

ここにサンプルがあります。

次に、このように接続したいmongoデータベースと同じ数の設定ファイルがあります。

@Configuration 
@EnableMongoRepositories(basePackages = "com.product.repository.shop.swiss", mongoTemplateRef = "swissMongoProductTemplate") 
class SWissProductMongoConfig extends MongoConfig { 

    @Bean(name = "swissMongoProductTemplate") 
    public MongoTemplate swissMongoProductTemplate() throws Exception { 
     MongoDbProperties mongoDbProperties = shopSWissProductMongoProperties(); 
     Mongo mongoClient = getMongoClient(mongoDbProperties); 
     return new MongoTemplate(mongoClient, mongoDbProperties.getDbName()); 
    } 

     @Bean 
     @ConfigurationProperties(prefix = "mongo.product.swiss") 
     public MongoDbProperties shopSWissProductMongoProperties(){ 
      return new MongoDbProperties(); 
     } 
    } 

    @Configuration 
    @EnableMongoRepositories(basePackages = "com.product.repository.shop.france", mongoTemplateRef = "franceMongoProductTemplate") 
    class SWissProductMongoConfig extends MongoConfig { 

     @Bean(name = "franceMongoProductTemplate") 
     public MongoTemplate franceMongoProductTemplate() throws Exception { 
      MongoDbProperties mongoDbProperties = shopFranceProductMongoProperties(); 
      Mongo mongoClient = getMongoClient(mongoDbProperties); 
      return new MongoTemplate(mongoClient, mongoDbProperties.getDbName()); 
     } 

     @Bean 
     @ConfigurationProperties(prefix = "mongo.product.france") 
     public MongoDbProperties shopFranceProductMongoProperties(){ 
      return new MongoDbProperties(); 
     } 
    } 

mongo: 
    product: 
    france : 
     dbName: 
     host: 
     port: 
     dbUser: 
     dbPwd: 
    swiss: 
     dbName: 
     host: 
     port: 
     dbUser: 
     dbPwd: 

あなたはannotaionのEnableMongoRepositories私は、これはすでに答えていると思い

関連する問題