我尝试使用 Spring Boot 连接多个 mongodb 数据库,但出现此错误

问题描述

我尝试使用 Spring boot 连接多个 mongodb 数据库,但出现此错误:“考虑在您的配置中定义一个名为‘MONGO_TEMPLATE’的 BEAN”

enter image description here

到目前为止我是如何尝试实现这一点的:

        package com.wipro.MongoConnector.Config;
        import org.springframework.boot.autoconfigure.mongo.Mongoproperties;
        import org.springframework.boot.context.properties.EnableConfigurationProperties;
        import org.springframework.context.annotation.Bean;
        import org.springframework.context.annotation.Configuration;
        import org.springframework.context.annotation.Primary;
        import org.springframework.data.mongodb.MongoDatabaseFactory;
        ///import org.springframework.data.mongodb.MongoDbFactory; // depricated since spring 3.0
        import org.springframework.data.mongodb.core.MongoTemplate;
        import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory;

        import com.mongodb.MongoClient;

        import lombok.requiredArgsConstructor;

        @Configuration
        @requiredArgsConstructor
        @EnableConfigurationProperties(MultipleMongoproperties.class)

        public class MultipleMongoConfig{
        private final MultipleMongoproperties mongoproperties;
        public MultipleMongoConfig(MultipleMongoproperties multipleMongoproperties) {
        this.mongoproperties = multipleMongoproperties;
        }
       @Primary
       @Bean(name = PrimaryMongoConfig.MONGO_TEMPLATE)
       public MongoTemplate primaryMongoTemplate() throws Exception{
         return new MongoTemplate(primaryFactory(this.mongoproperties.getPrimary()));
       }
       @Bean(name = SecondaryMongoConfig.MONGO_TEMPLATE)
       public MongoTemplate secondaryMongoTemplate() throws Exception{
         return new MongoTemplate(secondaryFactory(this.mongoproperties.getPrimary())); 
       }
       @Primary
       @Bean
       public MongoDatabaseFactory primaryFactory(final Mongoproperties mongo) throws Exception {
         return new SimpleMongoClientDatabaseFactory((com.mongodb.client.MongoClient) new 
         MongoClient(mongo.getHost(),mongo.getPort()),mongo.getDatabase());
      }
      @Bean
      public MongoDatabaseFactory secondaryFactory(final Mongoproperties mongo) throws Exception {
         return new SimpleMongoClientDatabaseFactory((com.mongodb.client.MongoClient) new 
         MongoClient(mongo.getHost(),mongo.getDatabase());
      }

    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)