Java 我可以使用JNDI共享MongoClient实例吗?
我正在使用Jetty作为web服务器。我已经构建了一个自定义LoginService/realm,它使用MongoDb获取用户。此LoginService位于自己的jar中,位于jetty服务器容器的类路径上 我还想在我的web应用程序中使用MongoDb。通常,对于SQL,您将设置一个通过JNDI共享的连接池。我可以用MongoDb做类似的事情吗 每个MongoClient管理一个连接池。我可以在JNDI(即Java 我可以使用JNDI共享MongoClient实例吗?,java,mongodb,jetty,jndi,mongo-java,Java,Mongodb,Jetty,Jndi,Mongo Java,我正在使用Jetty作为web服务器。我已经构建了一个自定义LoginService/realm,它使用MongoDb获取用户。此LoginService位于自己的jar中,位于jetty服务器容器的类路径上 我还想在我的web应用程序中使用MongoDb。通常,对于SQL,您将设置一个通过JNDI共享的连接池。我可以用MongoDb做类似的事情吗 每个MongoClient管理一个连接池。我可以在JNDI(即MongoClient实例)中存储任意对象,还是必须使用ObjectFactory接口
MongoClient
实例)中存储任意对象,还是必须使用ObjectFactory
接口
如果我必须创建某种类型的ObjectFactory,我基本上可以将其转换为singleton并返回相同的MongoClient实例吗
我不完全理解JNDI,因为很少有资源真正解释它的神奇之处,所以我甚至可能没有提出正确的问题。您的服务器中需要这样的东西。xml:
<mongo id="mongo">
<hostNames>YOUR.MONGODB.HOSTNAME.HERE</hostNames>
</mongo>
<mongoDB databaseName="YOUR_DATABASE_NAME" jndiName="mongo/mongodb" mongoRef="mongo"/>
@Resource(name = "mongo/mongodb")
DB mongoDB;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DBCollection table = mongoDB.getCollection("YOUR_TABLE_NAME");
// etc.
}