在MongoClient添加连接配置信息主要是将配置信息添加到url来实现的

MongoClient的都有哪些配置 ,在MongoClients的create方法中有这样一个方法,方法传的是mongodb的连接地址,然后会创建一个ConnectionString对象,这个对象里保存着MongoClient的所有的配置信息,像最大连接数、连接超时时间等信息

public static MongoClient create(String connectionString) {return create(new ConnectionString(connectionString));
}

这里是对传来的ConnectionString地址进行解析成unprocessedConnectionString

String unprocessedConnectionString;
if (isMongoDBProtocol) {unprocessedConnectionString = connectionString.substring("mongodb://".length());
} else {unprocessedConnectionString = connectionString.substring("mongodb+srv://".length());
}

这两行代码是将unprocessedConnectionString和txtRecordsQueryParameters的连接信息进行解析封装成map

Map<String, List<String>> connectionStringOptionsMap = this.parseOptions(unprocessedConnectionString);
Map<String, List<String>> txtRecordsOptionsMap = this.parseOptions(txtRecordsQueryParameters);

这里将前两个map进行整合成参数map

Map<String, List<String>> combinedOptionsMaps = this.combineOptionsMaps(txtRecordsOptionsMap, connectionStringOptionsMap);

然后调用this.translateOptions(combinedOptionsMaps)方法,给ConnectionString对象的连接信息参数赋值

this.translateOptions(combinedOptionsMaps);
while(var4.hasNext()) {String key = (String)var4.next();String value = this.getLastValue(optionsMap, key);if (value != null) {if (key.equals("maxpoolsize")) {this.maxConnectionPoolSize = this.parseInteger(value, "maxpoolsize");} else if (key.equals("minpoolsize")) {this.minConnectionPoolSize = this.parseInteger(value, "minpoolsize");} else if (key.equals("maxidletimems")) {this.maxConnectionIdleTime = this.parseInteger(value, "maxidletimems");} else if (key.equals("maxlifetimems")) {this.maxConnectionLifeTime = this.parseInteger(value, "maxlifetimems");} else if (key.equals("waitqueuetimeoutms")) {this.maxWaitTime = this.parseInteger(value, "waitqueuetimeoutms");} else if (key.equals("connecttimeoutms")) {this.connectTimeout = this.parseInteger(value, "connecttimeoutms");} else if (key.equals("sockettimeoutms")) {this.socketTimeout = this.parseInteger(value, "sockettimeoutms");} else if (key.equals("tlsallowinvalidhostnames")) {this.sslInvalidHostnameAllowed = this.parseBoolean(value, "tlsAllowInvalidHostnames");tlsAllowInvalidHostnamesSet = true;} else if (key.equals("sslinvalidhostnameallowed")) {this.sslInvalidHostnameAllowed = this.parseBoolean(value, "sslinvalidhostnameallowed");tlsAllowInvalidHostnamesSet = true;} else if (key.equals("tlsinsecure")) {this.sslInvalidHostnameAllowed = this.parseBoolean(value, "tlsinsecure");tlsInsecureSet = true;} else if (key.equals("ssl")) {this.initializeSslEnabled("ssl", value);} else if (key.equals("tls")) {this.initializeSslEnabled("tls", value);} else if (key.equals("replicaset")) {this.requiredReplicaSetName = value;} else if (key.equals("readconcernlevel")) {this.readConcern = new ReadConcern(ReadConcernLevel.fromString(value));} else if (key.equals("serverselectiontimeoutms")) {this.serverSelectionTimeout = this.parseInteger(value, "serverselectiontimeoutms");} else if (key.equals("localthresholdms")) {this.localThreshold = this.parseInteger(value, "localthresholdms");} else if (key.equals("heartbeatfrequencyms")) {this.heartbeatFrequency = this.parseInteger(value, "heartbeatfrequencyms");} else if (key.equals("appname")) {this.applicationName = value;} else if (key.equals("retrywrites")) {this.retryWrites = this.parseBoolean(value, "retrywrites");} else if (key.equals("retryreads")) {this.retryReads = this.parseBoolean(value, "retryreads");} else if (key.equals("uuidrepresentation")) {this.uuidRepresentation = this.createUuidRepresentation(value);} else if (key.equals("directconnection")) {this.directConnection = this.parseBoolean(value, "directconnection");}}
}

从上面的参数中找到需要的配置参数然后加到mongodb的连接地址中即可生效,例如

mongodb://admin:Abc123++@127.0.0.1:27017/?authSource=local&serverselectiontimeoutms=1000

MongoClient添加连接配置信息相关推荐

  1. Django项目准备和配置(MVT图解、创建项目和应用、更换解释器、安装应用、本地化、模板路径、项目中匹配urls、应用中匹配urls.py、准备视图、开启服务器、修改DATABAS配置信息)

    Django模型主要包含: 模型配置 数据的增删改 增:book = BookInfo() book.save() 和BookInfo.objects.create() 删:book.delete() ...

  2. ASP.NET企业开发框架IsLine FrameWork系列之十三--框架配置信息大全(上)

    ASP.NET企业开发框架IsLine FrameWork系列之十三--框架配置信息大全(上) IsLine FrameWork一个是支持企业应用系统开发的框架,开发人员可以在其基础上对企业所需的应用 ...

  3. SpringCloud Alibaba - Nacos 作为配置中心 读取Properties配置信息

    SpringCloud Alibaba是阿里巴巴致力于对微服务的管理.配置.注册等一整套的解决方案. 简介 Nacos 提供用于存储配置和其他元数据的 K-V 存储,为分布式系统中的外部化配置提供服务 ...

  4. SpringBoot之单Redis与哨兵集群连接配置

    引入Redis依赖 <!-- 指定SpringBoot版本 --><parent><groupId>org.springframework.boot</gro ...

  5. 在web.config中添加配置信息

    1 在web.config中添加配置信息<configuration><connectionStrings><add name="conStr" co ...

  6. 使用Apache Commons Configuration读取配置信息

    2019独角兽企业重金招聘Python工程师标准>>> 在项目中使用一些比较新的库总会给你带来很多快乐,在这篇文章中,我将会给你介绍一个在Java中读取配置文件的框架--Apache ...

  7. vscode安装本地服务器_VS Code安装和远程服务器连接配置

    简介 Visual Studio Code是一个轻量且强大的代码编辑器,支持Windows,OS X和Linux.内置JavaScript.TypeScript和Node.js支持,而且拥有丰富的插件 ...

  8. Android平台Chromium net中的代理配置信息获取

    在计算机网络中,代理服务器 扮演着发起请求的客户端与服务器之间的中间人的角色.客户端连接到代理服务器,请求一些服务,比如文件,网页,或其它可以从服务器获得的资源,代理服务器以简化和控制复杂度的形式获取 ...

  9. 平台系统云服务器配置,01-云平台连接配置

    1云平台连接 1.1  云平台连接简介 云平台连接是指设备与H3C绿洲平台服务器(H3C Oasis server)通过Internet建立的远程管理通道.通过云平台连接,网络管理员可以在没有直接接入 ...

最新文章

  1. java最最长的错误,Java开发中遇到最多的异常是什么?最后一个最多最难!
  2. 检查联网状态并设置网络
  3. jquery easy ui 1.3.4 数据表格(DataGrid)(8)
  4. 计算机组成原理第4章-指令系统
  5. c语言程序设计 江宝钏 实验九,c语言程序设计,江宝钏著,实验九.docx
  6. jQuery 陷阱。。。。
  7. 数据科学与python语言实验——NumPy数值计算基础
  8. 概率论 方差公式_【考研数学】概率论与数理统计
  9. C++ 头文件使用规范建议
  10. Create-React-App创建antd-mobile开发环境
  11. UnityShader中的Queue
  12. Spss典型相关分析的常见问题
  13. 微信公众号H5 - 关于微信公众号h5网页实现分享图片
  14. KICAD——手动生成嘉立创可识别的BOM和POS文件
  15. RedHat6.3配置DNS服务器
  16. 微信java tools_微信工具weixin-java-tools的使用总结
  17. EventEmitter has used unknown event type: “pullingUp“, should be oneof
  18. python自动测试s_用 Python 开启测试自动化的未来
  19. ADRC线性跟踪微分器(ST+SCL语言)
  20. Scratch画六边形

热门文章

  1. 特斯拉电池细节_为什么特斯拉电池日实际上可以辜负炒作
  2. 知名密码管理应用LastPass启用双因素认证
  3. hibernate总结多表查询
  4. 钉钉小程序-打开外部链接(文件链接)
  5. 商城-折扣活动设计方案
  6. oracle10g lsnrctl,Oracle 10g Lsnrctl没有反映 无法连接数据库
  7. 2018最新微信小程序经典案例开发视频教程合集
  8. 线性代数:如何求特征值和特征向量
  9. C语言编程实现程输出所有玫瑰花数
  10. Android 简单的折叠布局,上滑监听透明度