问题描述
我尝试使用 Spring boot 连接多个 mongodb 数据库,但出现此错误:“考虑在您的配置中定义一个名为‘MONGO_TEMPLATE’的 BEAN”
到目前为止我是如何尝试实现这一点的:
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 (将#修改为@)