使用java驱动程序只调用一次MongoClient(“localhost”,“port”)方法

时间:2015-08-20 14:41:31

标签: java mongodb tomcat mongodb-java

我有一个运行我的Web应用程序的tomcat服务器。为了遵循mongo文档,我需要弄清楚我的服务器如何始终引用相同的MongoClient实例。

我的想法是使用名为

的静态标识符创建一个类变量
public static mongoClient;

当我的服务器启动时,我会调用类似MongoClass.start()的方法来生成类变量:

public static void start() {
    mongoClient = new MongoClient("localhost", "port");
}

这将允许我在整个应用程序中连接到我的数据库。每次使用javax和jersey处理HTTP请求时,我都会创建一个MongoClass的实例并做一些事情。因为在开始时,我初始化了mongoclient变量,所启动的任何新类都已经与数据库建立了连接。

当服务器关闭时,我会调用MongoClass.close()方法:

public static void close() {
    mongoClient.close()
}

这将关闭线程,有效地处理内存泄漏问题。 特别是错误:

The web application [/app] appears to have started a thread named 
[MongoCleaner1953449629] but has failed to stop it. This is very likely to 
create a memory leak.

我的推理是否正确?这是处理MongoDB java驱动程序的好方法吗?

0 个答案:

没有答案