Spring Data Mongo - 动态更改存储库模板

时间:2016-01-26 15:30:33

标签: java spring mongodb spring-data-mongodb

我有这样的场景:在多个mongo数据库中复制相同的数据库结构(相同的集合)。这意味着我为每个集合(Document)都有一个mongo存储库。

现在我需要通过相同的控制面板应用程序管理这些数据库,动态连接到每个数据库,并使用相同的存储库类(数据库是相同的)。

我知道我可以为此post中所述的存储库指定已知模板,但这意味着我必须在启动时知道数据库的连接属性。我该如何实现它的动态行为呢?

1 个答案:

答案 0 :(得分:1)

您可能希望查看的核心界面是MongoDBFactory。您可以通过覆盖mongoDbFactory()中的AbstractMongoConfiguration或仅使用XML中的普通bean定义来提供自定义的。

要在不同数据库之间透明切换,只需跟踪实现中选择的数据库,然后根据该实例返回DB实例。