使用静态引用Mongodb Collection



我使用Mongodb的Spring Data,有时我使用java驱动程序这样:

DBCollection mycoll = mongoOperations.getCollection("mycoll");

将集合mycoll设为静态并通过Singleton实例化它有意义吗?

你不需要Singleton,只有当你只能有一个实例并且你需要管理这个实例时,你才需要Singleton,参见这篇文章。Java Mongo驱动程序的源代码显示,MongoDB集合的情况并非如此。'getCollection '方法只验证collection是否存在于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;
    }

最新更新