gpt4 book ai didi

java - Spring Boot中没有存储库的多个mongo

转载 作者:行者123 更新时间:2023-12-01 16:14:47 25 4
gpt4 key购买 nike

我正在尝试在 Spring Boot 中配置两个 mongos。但它总是只选择一个,这是我的代码。

Mongo 1 配置

@Configuration
public class MongoOneConfiguration extends AbstractMongoConfiguration {

@Override
@Bean(name = "mongoOneClient")
public MongoClient mongoClient() {
return new MongoClient(new ServerAddress(mongoOnehostname, mongoOnehostport),
new MongoClientOptions.Builder()
.connectTimeout(mongoOneConnTimeoutMillis)
.build());
}

@Override
public String getDatabaseName() {
return mongoOneDatabaseName;
}

@Bean(name = "mongoOneTemplate")
public MongoOperations mongoOperations() {
try {
return mongoTemplate();
} catch (Exception e) {

}
}
}

Mongo 2 配置

@Configuration
public class MongoTwoConfiguration extends AbstractMongoConfiguration {

@Override
@Bean(name = "mongoTwoClient")
public MongoClient mongoClient() {
return new MongoClient(new ServerAddress(mongoTwohostname, mongoTwohostport),
new MongoClientOptions.Builder()
.connectTimeout(mongoTwoConnTimeoutMillis)
.build());
}

@Override
public String getDatabaseName() {
return mongoTwoDatabaseName;
}

@Bean(name = "mongoTwoTemplate")
public MongoOperations mongoOperations() {
try {
return mongoTemplate();
} catch (Exception e) {

}
}
}

刀1:

@Component
public class MongoOneDao {
@Autowired
@Qualifier("mongoOneTemplate")
private MongoOperations mongoOneTemplate;


public List<Person> getAll() {
return mongoOneTemplate.findAll(Person.class);
}
}

刀2:

@Component
public class MongoTwoDao {
@Autowired
@Qualifier("mongoTwoTemplate")
private MongoOperations mongoTwoTemplate;


public List<Person> getAll() {
return mongoTwoTemplate.findAll(Person.class);
}
}

无论我使用 MongoOneDaoMongoTwoDao 哪个 Dao,它总是调用相同的数据库。你能帮助我缺少什么吗?

PS:我不想使用存储库。

最佳答案

我认为你应该在配置中创建2个不同的 MongoDbFactory 实例,并使用不同的工厂来创建不同的 MongoTemplates 。看看这个 Link 。它可能会有所帮助

关于java - Spring Boot中没有存储库的多个mongo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62432239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com