【发布时间】:2018-10-27 18:45:15
【问题描述】:
我有一个多租户 mongoDB 应用程序,我们假设 从 HTTP 请求标头中的租户名称中选择与正确数据库的正确连接(我使用先前准备的带有租户名称的属性文件)。 当应用程序启动时,mongoDB 正在配置并且我没有关于租户的信息,因为没有发送到应用程序的请求,所以我不知道我应该连接到哪个数据库。当我尝试从 mongo 存储库获取一些数据时(然后我从 HTTP 请求中获得租户名称),是否有可能动态配置 mongoDB 与数据库的连接?
MongoDb 配置:
@Configuration
public class MongoDbConfiguration {
private final MongoConnector mongoConnector;
@Autowired
public MongoDbConfiguration(MongoConnector mongoConnector) {
this.mongoConnector = mongoConnector;
}
@Bean
public MongoDbFactory mongoDbFactory() {
return new MultiTenantSingleMongoDbFactory(mongoConnector, new MongoExceptionTranslator());
}
@Bean
public MongoTemplate mongoTemplate() {
return new MongoTemplate(mongoDbFactory());
}
}
【问题讨论】:
标签: java spring mongodb multi-tenant spring-data-mongodb