我正在为 Mongodb 使用 Spring Data,有时我会这样使用 java 驱动程序:
DBCollection mycoll = mongoOperations.getCollection("mycoll");
将集合 mycoll 设为静态并通过单例实例化是否有意义?
最佳答案
为此您不需要单例,如果您只能拥有一个实例并且您需要管理该实例,则只需要一个单例,请参阅 post . Java Mongo 驱动程序的源代码显示 MongoDB 集合并非如此。 'getCollection` 方法只验证集合是否存在于 collectionCache(一个 hashmap)中,不执行任何数据库操作,因此多次调用它的开销很小。请参阅下面来自 https://github.com/mongodb/mongo-java-driver 的相关代码片段
/**
* Gets a collection with a given name.
*
* @param name the name of the collection to return
* @return the collection
*/
public DBCollection getCollection(final String name) {
DBCollection collection = collectionCache.get(name);
if (collection != null) {
return collection;
}
关于java - 使用对 Mongodb 集合的静态引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33281016/