Spring data mongodb 多个Mongo数据库和spring数据
我正在了解如何根据登录的用户动态连接到不同的mongo db。我看到很多帖子都在谈论它,但由于我是新手,我只是想了解更多关于如何实现它的内容。在我们的应用程序中,在创建用户帐户时,我们可以根据用户名创建不同的db文件,用户名充当密钥。 所以我们知道要连接哪个数据库,所以我想这只是选择正确工厂的问题。 我在模板代码中看到以下构造函数Spring data mongodb 多个Mongo数据库和spring数据,spring-data-mongodb,Spring Data Mongodb,我正在了解如何根据登录的用户动态连接到不同的mongo db。我看到很多帖子都在谈论它,但由于我是新手,我只是想了解更多关于如何实现它的内容。在我们的应用程序中,在创建用户帐户时,我们可以根据用户名创建不同的db文件,用户名充当密钥。 所以我们知道要连接哪个数据库,所以我想这只是选择正确工厂的问题。 我在模板代码中看到以下构造函数 public MongoTemplate(Mongo mongo, String databaseName) { this(new SimpleMongoDb
public MongoTemplate(Mongo mongo, String databaseName) {
this(new SimpleMongoDbFactory(mongo, databaseName), null);
}
我当前的SpringJava配置执行以下操作
@Bean
public MongoDbFactory mongoDbFactory() throws Exception {
UserCredentials userCredentials =
new UserCredentials(
env.getRequiredProperty(databasePropertyNames.getDBUsernamePropertyName()),
env.getRequiredProperty(databasePropertyNames.getDBPasswordPropertyName()));
return new SimpleMongoDbFactory(mongo().getObject(),
env.getRequiredProperty(databasePropertyNames.getDBNamePropertyName()),
userCredentials);
}
@Bean
public MongoTemplate mongoTemplate() throws Exception {
MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory(), mappingMongoConverter());
mongoTemplate.setWriteConcern(WriteConcern.SAFE);
return mongoTemplate;
}
Questions:-
1.Will there be multiple SimpleMongoDbFactory objects that I need to create based on the user that logged in?
If yes then how do I do it and do I need to maintain that object Map?
2. How would I do set those in mongoTemplate at runtime?
非常感谢您的帮助:)以下帖子对我很有用 github.com/Loki-Afro/multi-tenant-spring-mongodb
除此之外,还必须更新Mongo实例,以允许来自默认数据库的用户能够写入任何其他数据库以下帖子对我来说效果很好[除此之外,还必须更新Mongo实例,以允许来自默认数据库的用户能够写入任何其他数据库