关闭MongoDB Java连接
我正试图设计一个Mongo Db连接类,在这个类中,我将MongoClient维护为静态关闭MongoDB Java连接,java,mongodb,mongodb-query,mongodb-java,Java,Mongodb,Mongodb Query,Mongodb Java,我正试图设计一个Mongo Db连接类,在这个类中,我将MongoClient维护为静态 private static MongoClient client = null; public static DB connectToMongo() throws Exception { if (null != client) { return client.getDB(DBNAME); } client = new MongoClient(HOST
private static MongoClient client = null;
public static DB connectToMongo() throws Exception {
if (null != client) {
return client.getDB(DBNAME);
}
client = new MongoClient(HOST,PORT);
return client.getDB(DBNAME);
}
我的整个web应用程序使用上述方法连接到Mongo,如下所示:
db = MongoDBConnection.connectToMongo();
collection = db.getCollection("collectionName");
执行DB操作后,我从未调用MongoClient的close连接。connection类将始终返回从未关闭的MongoClient的同一个实例。我唯一关闭的是游标
- 每次查询数据库时是否需要关闭MongoClient? 我的上述设计有效吗?
- connectToMongo方法中存在竞争条件。您需要同步对该方法的访问,以确保最多创建一个MongoClient实例
- 如果您在未重新启动应用程序服务器的情况下重新部署web应用程序,则必须确保在web应用程序关闭时关闭MongoClient。例如,您可以使用ServletContextListener来实现这一点李>