Spring-data-mongodb conecta-se a vários bancos de dados em uma instância do Mongo

Estou usando o mais recente spring-data-mongodb (1.1.0.M2) e o mais recente Mongo Driver (2.9.0-RC1). Eu tenho uma situação onde eu tenho vários clientes se conectando ao meu aplicativo e eu quero dar a cada um o seu próprio "esquema / banco de dados" no mesmo servidor Mongo. Esta não é uma tarefa muito difícil de conseguir se eu estivesse usando o driver diretamente:

Mongo mongo = new Mongo( new DBAddress( "localhost", 127017 ) );

DB client1DB = mongo.getDB( "client1" );
DBCollection client1TTestCollection = client1DB.getCollection( "test" );
long client1TestCollectionCount = client1TTestCollection.count();

DB client2DB = mongo.getDB( "client2" );
DBCollection client2TTestCollection = client2DB.getCollection( "test" );
long client2TestCollectionCount = client2TTestCollection.count();

Veja, fácil. Mas o spring-data-mongodb não permite uma maneira fácil de usar vários bancos de dados. A maneira preferida de configurar uma conexãoMongo é estender oAbstractMongoConfiguration classe:

Você verá que você substitui o seguinte método:

getDatabaseName()

Por isso, força você a usar um nome de banco de dados. As interfaces de repositório que você constrói usam esse nome de banco de dados dentro do MongoTemplate que é passado para oSimpleMongoRepository classe.

Onde na terra eu iria ficar vários nomes de banco de dados? Eu tenho que fazer vários nomes de banco de dados, múltiplosMongoTempates (um por nome de banco de dados) e várias outras classes de configuração. E isso ainda não permite que minhas interfaces de repositório usem o modelo correto. Se alguém tentou algo assim, me avise. Se eu descobrir, postarei a resposta aqui.

Obrigado.

questionAnswers(6)

yourAnswerToTheQuestion