当前位置: 首页 > news >正文

简约网站首页华为云云速建站教程

简约网站首页,华为云云速建站教程,湖南城市建设技术学院官方网站,网站上做旅游卖家要学什么因为今天开发遇到了性能问题#xff0c;可能与MongoDB的连接有关#xff0c;所以稍稍深入看了一下#xff0c;正好搜到原来有人写过这篇相关的内容#xff0c;所以转载过来。回头有时间可以写个扩展到SpringForAll里#xff0c;主体思路还是一样的。感谢这位美女程序媛的文… 因为今天开发遇到了性能问题可能与MongoDB的连接有关所以稍稍深入看了一下正好搜到原来有人写过这篇相关的内容所以转载过来。回头有时间可以写个扩展到SpringForAll里主体思路还是一样的。感谢这位美女程序媛的文章 说明 Spring Boot中通过依赖spring-boot-starter-data-mongodb来实现spring-data-mongodb的自动配置。但是默认情况下Spring Boot 中并没有像使用MySQL或者Redis一样提供了连接池配置的功能。因此我们需要自行重写 MongoDbFactory实现MongoDB客户端连接的参数配置扩展。 需要说明的是MongoDB的客户端本身就是一个连接池因此我们只需要配置客户端即可。 配置文件 为了统一Spring Boot的配置我们要将重写的配置也配置到 application.yml中前缀为spring.data.mongodb.custom下前缀可自己随意配置 spring: data: mongodb: custom: hosts: - 10.0.5.1 - 10.0.5.1 ports: - 27017 - 27018 replica-set: mgset-3590061 username: jancee password: abc123 database: jancee authentication-database: admin connections-per-host: 20 min-connections-per-host: 20该配置例子中配置了副本集其中包含了主机10.0.5.1:27017和10.0.5.1:27018其它配置与Spring Boot的标准配置类似另外connections-per-host为客户端的连接数in-connections-per-host为客户端最小连接数。 将配置包装成类 为方便调用和可读性将上述配置包装成一个配置实体类MongoConfig.java代码如下: package com.feidiao.jancee.fdiot.api.config.mongo;import org.hibernate.validator.constraints.NotBlank;import org.hibernate.validator.constraints.NotEmpty;import org.springframework.stereotype.Component;import org.springframework.validation.annotation.Validated;import java.util.List;ComponentValidatedpublic class MongoSettingsProperties { NotBlank private String database; NotEmpty private ListString hosts; NotEmpty private ListInteger ports; private String replicaSet; private String username; private String password; private String authenticationDatabase; private Integer minConnectionsPerHost 10; private Integer connectionsPerHost 2; public MongoSettingsProperties() { } public String getDatabase() { return database; } public void setDatabase(String database) { this.database database; } public ListString getHosts() { return hosts; } public void setHosts(ListString hosts) { this.hosts hosts; } public ListInteger getPorts() { return ports; } public void setPorts(ListInteger ports) { this.ports ports; } public String getReplicaSet() { return replicaSet; } public void setReplicaSet(String replicaSet) { this.replicaSet replicaSet; } public String getUsername() { return username; } public void setUsername(String username) { this.username username; } public String getPassword() { return password; } public void setPassword(String password) { this.password password; } public String getAuthenticationDatabase() { return authenticationDatabase; } public void setAuthenticationDatabase(String authenticationDatabase) { this.authenticationDatabase authenticationDatabase; } public Integer getMinConnectionsPerHost() { return minConnectionsPerHost; } public void setMinConnectionsPerHost(Integer minConnectionsPerHost) { this.minConnectionsPerHost minConnectionsPerHost; } public Integer getConnectionsPerHost() { return connectionsPerHost; } public void setConnectionsPerHost(Integer connectionsPerHost) { this.connectionsPerHost connectionsPerHost; }}覆盖MongoDbFactory 接下来就是覆盖Spring Boot原有的MongoDbFactory Bean新建文件MongoConfig.java代码如下 import com.mongodb.MongoClient;import com.mongodb.MongoClientOptions;import com.mongodb.MongoCredential;import com.mongodb.ServerAddress;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.mongodb.MongoDbFactory;import org.springframework.data.mongodb.core.SimpleMongoDbFactory;import java.util.ArrayList;import java.util.List;Configurationpublic class MongoConfig { // 注入配置实体 Autowired private MongoSettingsProperties mongoSettingsProperties; Bean ConfigurationProperties( prefix spring.data.mongodb.custom) MongoSettingsProperties mongoSettingsProperties() { return new MongoSettingsProperties(); } // 覆盖默认的MongoDbFactory Bean MongoDbFactory mongoDbFactory() { //客户端配置连接数、副本集群验证 MongoClientOptions.Builder builder new MongoClientOptions.Builder(); builder.connectionsPerHost(mongoSettingsProperties.getConnectionsPerHost()); builder.minConnectionsPerHost(mongoSettingsProperties.getMinConnectionsPerHost()); if (mongoSettingsProperties.getReplicaSet() ! null) { builder.requiredReplicaSetName(mongoSettingsProperties.getReplicaSet()); } MongoClientOptions mongoClientOptions builder.build(); // MongoDB地址列表 ListServerAddress serverAddresses new ArrayList(); for (String host : mongoSettingsProperties.getHosts()) { Integer index mongoSettingsProperties.getHosts().indexOf(host); Integer port mongoSettingsProperties.getPorts().get(index); ServerAddress serverAddress new ServerAddress(host, port); serverAddresses.add(serverAddress); } System.out.println(serverAddresses: serverAddresses.toString()); // 连接认证 ListMongoCredential mongoCredentialList new ArrayList(); if (mongoSettingsProperties.getUsername() ! null) { mongoCredentialList.add(MongoCredential.createScramSha1Credential( mongoSettingsProperties.getUsername(), mongoSettingsProperties.getAuthenticationDatabase() ! null ? mongoSettingsProperties.getAuthenticationDatabase() : mongoSettingsProperties.getDatabase(), mongoSettingsProperties.getPassword().toCharArray())); } System.out.println(mongoCredentialList: mongoCredentialList.toString()); //创建客户端和Factory MongoClient mongoClient new MongoClient(serverAddresses, mongoCredentialList, mongoClientOptions); MongoDbFactory mongoDbFactory new SimpleMongoDbFactory(mongoClient, mongoSettingsProperties.getDatabase()); return mongoDbFactory; }}在这里实现了MongoDB连接时前面配置的参数的设置按照自己的实际情况可以在new SimpleMongoDbFactory时增加修改自己需要的配置参数。 至此就完成了全部配置运行测试即可。
http://wiki.neutronadmin.com/news/108667/

相关文章:

  • 建设厅安全证考试报名在哪个网站莆田制作网站企业
  • 做网站要多少网易邮箱163 com登录
  • 不是做有网站都叫狠狠wordpress会议
  • 网站页面不更新静海网站建设公司
  • 固镇网站建设哪家好网站seo优化方案策划书
  • 网站漂浮常州网站备案
  • 泰州营销型网站建设兰州网站建设q.479185700強
  • 网站建设zrhskj企业域名注册流程
  • 网站应该如何进行优化北京所有做招聘类网站建站公司
  • 自贡企业网站建设公司如何写网站开发的分析
  • 南山住房和建设局网站wordpress ajax登录
  • 萍乡建网站3d建模教程人物
  • 网站开发 运行及维护自己做的网页怎么发布
  • 建立网站需要多少钱 纠正错误湖南岚鸿wordpress上传小视频
  • 做兼职有哪些网站网站建设的前端开发和后端开发
  • 下载建设银行官方网站下载北碚区网站建设
  • 大型网站建设用什么系统好网站建站第十四课
  • 网站制作商业模式国外优秀的网站设计
  • 强的网站建设公司上海市工商网站官网
  • 泰兴市淘宝网站建设网页制作软件dw还需要什么
  • 南京网站建设电话网站开发服务计入什么科目
  • 淘宝代做网站怎么做淘宝客的跳转网站
  • 做租赁的行业网站网络传媒公司名字
  • 建立个人网站能干二次开发包
  • 互联网科技公司网站免费3d建模软件
  • 高端网站建设合同深圳网站开发哪个好
  • 网站开发所需技能湘潭网站建设公司有哪些
  • 青岛有没有做网站的构建平台还是搭建平台
  • 网站开发谷歌浏览器js不更新网站建设的编程语言
  • 娱乐城网站模板wordpress4.5.3 中文