简体   繁体   English

如何在Java应用程序服务器中使用MongoClient的一个实例

[英]How to use one instance of MongoClient in java application server

According to mongodb java concurrency driver we can use one instance of MongoClient for multiple threads for example inside application servers. 根据mongodb java并发驱动程序,我们可以将MongoClient一个实例用于多个线程,例如在应用程序服务器内部。 The only way I know to do this is to create MongoClient in static block: 我知道的唯一方法是在静态块中创建MongoClient

static {
    MongoClient mongoClient = new MongoClient("localhost", 27017);
}

the problem is I can't catch MongoException and return some helpfull information to user. 问题是我无法捕获MongoException并向用户返回一些有用的信息。 So how to share a single instance of MongoClient between multiple threads inside Java EE application servers? 那么,如何在Java EE应用程序服务器内的多个线程之间共享MongoClient的单个实例?

You can do one of the following: 您可以执行以下操作之一:

  1. Create a service class and initiate the mongo connection lazily on first request, showing an error when you fail 创建服务类并在第一次请求时延迟启动mongo连接,失败时显示错误
  2. Add a try catch and remember the error statically (I really don't like this one! But better than failing on exception in static context) 添加一个try catch并静态地记住该错误(我真的不喜欢这个错误!但是比在静态上下文中出现异常更好)
  3. Use spring to initialize mongo (my preferred option) 使用spring初始化mongo(我的首选)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM