springboot+maybatis+多数据源配置使用druid连接池

简介: springboot+maybatis+多数据源配置使用druid连接池

基于springboot+maybatis+多数据源配置一文填坑。

上文中介绍了怎么配置多数据源。

配置完之后,在application.properties里配置了druid的连接池。

使用druid流程:

1、在pom.xml文件引入

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.1.3</version>
</dependency>

2、在application.properties里配置了druid的连接池

# 初始化大小,最小,最大
spring.druid.initialSize=5
spring.druid.minIdle=5
spring.druid.maxActive=20
# 配置获取连接等待超时的时间
spring.druid.maxWait=60000
#  配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.druid.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.druid.minEvictableIdleTimeMillis=300000
spring.druid.validationQuery=SELECT 1 FROM DUAL
spring.druid.testWhileIdle=true
spring.druid.testOnBorrow=false
spring.druid.testOnReturn=false
spring.druid.poolPreparedStatements=true
spring.druid.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.druid.filters=stat,wall,log4j
#  通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000


接下来开始填坑,先说一下事故过程,凌晨00:00,springBoot项目连接数据库便一直连不上,

然后开始找原因,发现记录日志报错:

开始报错:

Could not roll back JDBC transaction; nested exception is java.sql.SQLRecoverableException: No more data to read from socket

然后报错:

Could not roll back JDBC transaction; nested exception is java.sql.SQLRecoverableException: Closed Connection

重启中间件后,访问正常,然后运维部门说重启了数据库服务器,然后考虑到应该是连接没有重试,直接返回‘Closed Connection’,想到是不是没走druid连接池机制。
然后找代码,发现配置多数据源的时候,如下图,创建DataSource 时并没有配置druid连接池

  @Bean(name = "master2DataSource")
    @ConfigurationProperties(prefix = "spring.datasource")
    @Primary
    public DataSource master2DataSource() {
      return DataSourceBuilder.create().build();
    }

如果要使用druid连接池则需要修改,创建DataSource 时要new DruidDataSource();

@Bean(name = "master2DataSource")
    @ConfigurationProperties(prefix = "spring.datasource")
    @Primary
    public DataSource master2DataSource() {
      return new DruidDataSource();
    }

druid更多配置:


image.png

image.png

image.png

目录
相关文章
|
23天前
|
Java 程序员 API
Springboot-swagger配置(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-swagger配置(idea社区版2023.1.4+apache-maven-3.9.3-bin)
27 1
|
23天前
|
前端开发 Java 数据库连接
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
12 0
|
7天前
|
Java 应用服务中间件 网络安全
Nginx配置静态页面+springboot应用+swagger+SSL的实现
Nginx配置静态页面+springboot应用+swagger+SSL的实现
|
10天前
|
XML 监控 druid
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
33 0
|
24天前
|
XML Java 测试技术
【SpringBoot】基于 Maven 的 pom.xml 配置详解
【SpringBoot】基于 Maven 的 pom.xml 配置详解
【SpringBoot】基于 Maven 的 pom.xml 配置详解
|
25天前
|
存储 Java 数据库连接
解锁Spring Boot的强大配置功能:@ConfigurationProperties与@PropertySources详解
解锁Spring Boot的强大配置功能:@ConfigurationProperties与@PropertySources详解
29 0
|
25天前
|
NoSQL Java 数据库连接
springboot整合Redis中连接池jedis与lettuce的对比和实现
springboot整合Redis中连接池jedis与lettuce的对比和实现
43 0
|
25天前
|
存储 Java 关系型数据库
springboot整合多数据源的配置以及动态切换数据源,注解切换数据源
springboot整合多数据源的配置以及动态切换数据源,注解切换数据源
18 0
|
28天前
|
Java 容器 Spring
SpringBoot2 | @SpringBootApplication注解 自动化配置流程源码分析(三)
SpringBoot2 | @SpringBootApplication注解 自动化配置流程源码分析(三)
24 0
QGS
|
2月前
|
Java 关系型数据库 MySQL
手拉手springboot3整合mybatis-plus多数据源
手拉手springboot3整合mybatis-plus多数据源
QGS
28 1

相关产品

  • 云迁移中心