热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springboot连接池配置,springboot默认连接池配置

SpringBoot2开启mongodbSSL连接与连接池配置本文基于springboot2采用host方式配置mongodbip连接,官方也支持uri方式连接mongodb。2.

SpringBoot2开启mongodbSSL连接与连接池配置

本文基于springboot2采用host方式配置mongodb ip连接,官方也支持uri方式连接mongodb(mongodb://ip:端口/数据库名称)。
POM.xml配置

org.springframework.boot spring-boot-starter-parent 2.1.6.RELEASE org.springframework.boot spring-boot-starter-data-mongodb

在application.yml中配置mongodb信息

spring: data: mongodb: #uri: mongodb://ip:端口/数据库名称 host: 127.0.0.1 username: root password: password port: 27071 database: test //配置使用哪个数据库 authentication-database: admin

配置详解:
1.host为mongodb的ip,在副本集的mongodb中推荐配置为primary的ip,单节点mongodb直接配置ip即可。

2.authentication-database为连接mongodb时使用哪个数据库作为登录鉴权数据库,需要注意自己创建的用户属于哪个mongodb数据库。

3.mongodb基本配置类为MongoProperties.java,可自行查看。
至此springboot就可以连接mongodb了,直接注入MongoTemplate对象就可以操作

mongodb开启SSL连接
MongoClientOptions.java中有关于SSL连接,心跳检测,连接池,是否启用短链接,链接时间管理等更多详细配置项。
如果使用自己搭建的mongdb需要使用openssl制作证书并配置可参考:MongoDB使用SSL
mongoDB官方文档
公司项目使用的是云数据库,开启SSL连接后可下载客户端证书,在需要创建新的证书信赖库时需要使用 keytool -importcert -trustcacerts -file 需要导入的证书文件路径 -keystore 证书信赖库地址 -storepass 证书信赖库密码 ,此命令将证书加入新创建的java证书库中。非交互式:在命令最后加参数-noprompt

如果需要将证书加入已存在的信赖库中使用如下命令:keytool -export -alias 别名 -keystore 信赖库位置/XX.jks -storepass 秘钥库密码 -file 需导入的证书

在程序中设置JVM 系统属性以指向正确的信任库和密钥库。
System.setProperty(“javax.net.ssl.trustStore”,“证书路径/XX.JKS”);
System.setProperty(“javax.net.ssl.trustStorePassword”,“XXX”);
SSL配置代码如下:

import com.mongodb.MongoClient;import com.mongodb.MongoClientOptions;import com.mongodb.MongoCredential;import com.mongodb.ServerAddress;import org.springframework.boot.autoconfigure.mongo.MongoProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.Collections;import java.util.List;//mongoSSl连接配置类@Configurationpublic class MongoSSL { @Bean public MongoClient createNetworkMongoClient(MongoProperties properties) { //properties 对象为springboot创建,可直接用 MongoCredential credentials = getCredentials(properties); String host = properties.getHost() == null ? "localhost" : properties.getHost(); int port = properties.getPort() == null ? 27017 : properties.getPort(); List addrs = Collections.singletonList(new ServerAddress(host, port)); System.setProperty("javax.net.ssl.trustStore","证书路径"); System.setProperty("javax.net.ssl.trustStorePassword","密钥库密码"); MongoClientOptions optiOns= MongoClientOptions.builder() .sslEnabled(true) //开启SSL连接 .sslInvalidHostNameAllowed(true) //不检查证书域名 .minConnectionsPerHost(1) //连接池最小连接数,最大连接数默认为100 .build(); return new MongoClient(addrs, credentials, options); } private MongoCredential getCredentials(MongoProperties properties) { String username = properties.getUsername(); String database = properties.getAuthenticationDatabase() == null ? properties.getMongoClientDatabase() : properties.getAuthenticationDatabase(); //此处可将加密的密码解密,替换配置文件中的值 properties.setPassword(new String(properties.getPassword()).toCharArray()); char[] password = properties.getPassword(); return MongoCredential.createCredential(username, database, password); }}

如有不足之处欢迎指正,转载请注明出处!


推荐阅读
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 精讲代理设计模式
    代理设计模式为其他对象提供一种代理以控制对这个对象的访问。代理模式实现原理代理模式主要包含三个角色,即抽象主题角色(Subject)、委托类角色(被代理角色ÿ ... [详细]
author-avatar
Hcl
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有