[英]Can I use JNDI to share a MongoClient instance?
我正在將Jetty用於Web服務器。 我建立了一個使用MongoDb來獲取用戶的自定義LoginService /領域。 這個LoginService在它自己的jar中,在碼頭服務器容器的類路徑中。
我也想在Web應用程序中使用MongoDb。 通常,對於SQL,您將設置一個通過JNDI共享的連接池。 我可以用MongoDb做類似的事情嗎?
每個MongoClient管理一個連接池。 是否可以在JNDI中存儲任意對象(即MongoClient
實例),還是必須使用ObjectFactory
接口?
如果必須創建某種ObjectFactory,基本上可以將其變成單例並返回相同的MongoClient實例嗎?
我沒有完全理解JNDI,因為那里幾乎沒有資源可以真正解釋JNDI的魔力,所以我什至沒有問正確的問題。
您需要在server.xml中添加以下內容:
<mongo id="mongo">
<hostNames>YOUR.MONGODB.HOSTNAME.HERE</hostNames>
</mongo>
<mongoDB databaseName="YOUR_DATABASE_NAME" jndiName="mongo/mongodb" mongoRef="mongo"/>
然后在您的java類中:
@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.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.