我有一个 Web 应用程序,我必须在 mongodb 中使用多个数据库(静态数据库集)。对于给定的请求,数据库依赖于作为请求的一部分传递的几个参数。我spring framework's mongoTemplate
用于与数据库交互。有两种方法可以获取MongoTemplate
特定数据库的实例。
- 通过仅使用
Mongo
将作为 Web 应用程序上下文的一部分初始化的实例。使用它,我可以获得MongoTemplate
给定的数据库。 - 用一个
MongoDBFactory
在第一种方法中,
@Autowired
private Mongo mongo;
MongoTemplate getMongoTemplate(String dbName) {
return new MongoTemplate(mongo, dbName);
}
第二种方法,
@Autowired
private MongoDbFactory factory;
MongoTemplate getMongoTemplate(String dbName) {
DB db = factory.getDb(dbName);
Mongo mongo = db.getMongo();
return new MongoTemplate(mongo);
}
这两个哪个是理想的?