如文档中所述:http : //mongodb.github.io/mongo-java-driver/3.3/driver/getting-started/quick-tour/
MongoClient 实例实际上代表了一个到数据库的连接池;即使有多个线程,您也只需要 MongoClient 类的一个实例。
使用下面的代码可以获得集合(就像 RDMS 中的“表”一样):
MongoDatabase database = mongoClient.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("test");
Run Code Online (Sandbox Code Playgroud)
我发现这些代码总是返回新实例,那么,如何在我的应用程序中将MongoDatabase或MongoCollection作为单例呢?
MongoClient 通常应该是单例。你的报价提到了这一点
MongoClient 实例实际上代表了一个到数据库的连接池;即使有多个线程,您也只需要 MongoClient 类的一个实例。
它还在javadocs 中提到了这一点:
具有内部连接池的 MongoDB 客户端。对于大多数应用程序,您应该有一个用于整个 JVM 的 MongoClient 实例。
将MongoDatabase或MongoCollection主要作为单例是没有意义的(还有其他原因),因为底层连接可能会变得陈旧,这需要一些编码来刷新单例 MongoDatabase 或单例 MongoCollection。
| 归档时间: |
|
| 查看次数: |
1707 次 |
| 最近记录: |