如何解决在Spring Data Mongodb环境中如何基于不同的用户访问不同的数据库?
在我当前的实现中,MongoDB架构看起来像
DB : schoola
Collections :
1. students
2. users
DB : schoolb
Collections :
1. students
2. users
然后在Spring服务器属性文件的每个实例中-
SPRING_DATA_MONGODB_DATABASE: <dbname>
SPRING_DATA_MONGODB_URI: <URI to <dbname>>
很显然,这是不可扩展的,我已经厌倦了维护其他服务器实例。 相反,我要寻找的是一个 用户数据库
DB : user
Collections :
1. users (with fields {userName,password,associatedWith: <DB NAME OF THE SCHOOL USER IS ASSOCIATED WITH>)
那我该怎么做? 当用户尝试登录时,我尝试使用 user / users 进行验证,如果成功,则获取 associatedWith 值。 然后,我连接到该数据库并为该用户提供服务,同样,我也不必每次进行Rest调用都连接到mongodb,可能我需要在内存中维护一个userContext。
解决方法
一种方法是提供自己的MongoDatabaseFactory
风格,在getMongoDatabase()
上从上下文源读取 tenant 并返回{{ 1}}。
This sample有点过时,但给人的总体印象是这里。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。