Spring-data-mongodb在一个Mongo实例中连接到多个数据库

Spring-data-mongodb在一个Mongo实例中连接到多个数据库,第1张

Spring-data-mongodb在一个Mongo实例中连接到多个数据库

因此,经过大量研究和实验,我得出的结论是,当前

spring-data-mongodb
项目尚不可能做到这一点。我在上面尝试了baja的方法,遇到了一个特殊的障碍。在
MongoTemplate
运行
ensureIndexes()
从它的构造函数中的方法。此方法调出数据库以确保数据库中存在带注释的索引。启动时
MongoTemplate
会调用for的构造函数,
Spring
因此我什至没有机会设置
ThreadLocal
变量。我必须在
Spring
启动时已经设置好默认值,然后在请求进入时进行更改。这是不允许的,因为我既不需要也不拥有默认数据库。

虽然一切都没有丢失。我们最初的计划是让每个客户端都在其自己的应用程序服务器上运行,并指向服务器上自己的

MongoDB
数据库
MongoDB
。然后,我们可以提供一个
-Dprovider=
系统变量,并且每个服务器仅指向一个数据库运行。

我们被指示要有一个多租户应用程序,因此尝试使用该

ThreadLocal
变量。但是由于它不起作用,因此我们能够按照最初设计的方式运行该应用程序。

我相信,虽然有一种方法可以使所有这些工作正常进行,但所需的时间比其他帖子中所述的更多。你必须自己做

RepositoryFactoryBean
。这是Spring
Data MongoDB参考文档中
的示例。您仍然需要自己实现
MongoTemplate
并延迟或删除
ensureIndexes()
呼叫。但是,您将不得不重写一些类以确保
MongoTemplate
调用了而不是
Spring's
。换句话说,很多工作。我没有时间去做,甚至想做的工作。

感谢您的答复。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5488715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存