我使用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;
}