Я пытаюсь настроить два монго в своей весенней загрузке. Но всегда подбирает только один, вот мой код.
Пн go 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) {
}
}
}
Пн go 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);
}
}
Dao 2:
@Component
public class MongoTwoDao {
@Autowired
@Qualifier("mongoTwoTemplate")
private MongoOperations mongoTwoTemplate;
public List<Person> getAll() {
return mongoTwoTemplate.findAll(Person.class);
}
}
Какой бы Dao я ни использовал MongoOneDao
или MongoTwoDao
, он всегда вызывает одну и ту же базу данных. Не могли бы вы помочь в том, чего мне не хватает.
PS: Я не хочу использовать репозитории.