java - 使用对 Mongodb 集合的静态引用

标签 java mongodb spring-data

我正在为 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/

相关文章:

java - Spring data cdi多个持久化单元报错

java - 在 JPA 中保留 map

java - 如何在 Eclipse 中执行包级构建顺序

java - 将值设置为模拟对象但得到 null

java - CircleButton LongClickListener 未触发

java - 如何将通用引用分配给提供非通用数组列表的方法

mongodb - 查询数组中的日期

python - 通过python mongoengine刷新mongodb集合结构

mysql - 相对于各种选项的预计算计数

java - 完全忽略带有 AspectJ 的 Spring/@Transactional