我有一个运行我的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驱动程序的好方法吗?