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

Spring Data Mongo - Dynamically change repository template

我有这种情况:在多个 mongo 数据库中复制相同的数据库结构(相同的集合)。这意味着每个集合(文档)我都有一个 mongo 存储库。

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

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

您可能想要查看的核心界面是 MongoDBFactory。您可以通过覆盖 AbstractMongoConfiguration 中的 mongoDbFactory() 或 XML.

中的普通 bean 定义来提供自定义 bean

要在不同的数据库之间透明地切换,只需跟踪在实施中选择的那个数据库,然后return根据那个DB实例。