Spring-data-mongodb подключается к нескольким базам данных в одном экземпляре Mongo

Я использую последнюю версию spring-data-mongodb (1.1.0.M2) и последнюю версию драйвера Mongo (2.9.0-RC1). У меня есть ситуация, когда у меня есть несколько клиентов, подключающихся к моему приложению, и я хочу предоставить каждому из них свою «схему / базу данных». на том же монго сервере. Это не очень сложная задача, если бы я использовал драйвер напрямую:

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();

Видите, просто. Но spring-data-mongodb не позволяет легко использовать несколько баз данных. Предпочтительный способ настройки соединения сMongo это продлитьAbstractMongoConfiguration учебный класс:

Вы увидите, что переопределяете следующий метод:

getDatabaseName()

Так что это заставляет вас использовать одно имя базы данных. Интерфейсы хранилища, которые вы затем создаете, используют это имя базы данных внутри MongoTemplate, которое передается вSimpleMongoRepository учебный класс.

Где я мог бы прикрепить несколько имен баз данных? Я должен сделать несколько имен баз данных, несколькоMongoTempates (по одному на имя базы данных) и несколько других классов конфигурации. И это все еще не заставляет мои интерфейсы репозитория использовать правильный шаблон. Если кто-нибудь пробовал такое, дайте мне знать. Если я это выясню, я опубликую ответ здесь.

Благодарю.

Ответы на вопрос(6)

Ваш ответ на вопрос