Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 根据每个请求重新配置mongodb连接_Spring_Mongodb_Spring Mvc_Spring Data_Spring Data Mongodb - Fatal编程技术网

Spring 根据每个请求重新配置mongodb连接

Spring 根据每个请求重新配置mongodb连接,spring,mongodb,spring-mvc,spring-data,spring-data-mongodb,Spring,Mongodb,Spring Mvc,Spring Data,Spring Data Mongodb,我在webapp上使用外部模块,这意味着我不能更改使用Spring数据的代码。它开始使用一些属性,如${mongoURI}和${mongoDB}连接到数据库并为其存储库提供数据,您可以通过服务将其连接到控制器 我试图解决的问题是,每个用户都有一个数据库,因此我需要为每个用户提供不同的连接,但我不确定Spring如何支持它 我按如下方式导入此服务: <!-- This is in the imported jar --> <import resource="classpath:/

我在webapp上使用外部模块,这意味着我不能更改使用Spring数据的代码。它开始使用一些属性,如
${mongoURI}
${mongoDB}
连接到数据库并为其存储库提供数据,您可以通过
服务
将其连接到
控制器


我试图解决的问题是,每个用户都有一个数据库,因此我需要为每个用户提供不同的连接,但我不确定Spring如何支持它

我按如下方式导入此服务:

<!-- This is in the imported jar -->
<import resource="classpath:/service-mongo-context.xml" />

<!-- This is in my folder structure -->
<context:property-placeholder location="classpath:/mongodb-config.properties" />

我想知道是否有可能在您每次收到通过不同的
${mongoURI}
${mongoDB}
的连接时重建整个服务,也许在
@Autowired

中更改变量,我不完全确定目标是什么:您希望在URL和凭据每次更改时都有一个实例进行自我重新配置吗?如果您有多个服务实例,每个Mongo URI一个,不是更好吗?虽然从技术角度来看,这是可行的,但我想知道在您的情况下,它在架构上是否可以接受?我试图解决的问题是,我们每个用户都有一个数据库,因此我需要每个用户有一个不同的连接,但我不确定Spring如何支持它。因此,单实例或多实例对我来说是可以的。然后,我建议您尝试“会话”范围或“请求”范围,这取决于您的群集/HA/生命周期需要。这是控制器范围吗?如果没有,是否有配置布线的方法?还有,如何在运行时设置属性?哦,伙计,对不起,我没有注意到“导入资源”在JAR中(好吧,这可以隐藏)。不,您需要在bean定义中重写它。
@Autowired private Service service;