SpringBoot整合Druid

SpringBoot整合Druid连接池

Druid连接池简介

在这里插入图片描述

Druid连接池是阿里巴巴旗下一款开源的数据库连接池产品,结合了C3P0,DBCP等DB池的优点,同时也加入了日志监控功能。

相关文档地址:
Github:https://github.com/alibaba/druid

maven仓库:
https://mvnrepository.com/artifact/com.alibaba/druid

Druid连接池相关配置参数

1)Max-active:指的是连接池里允许的最大活跃连接数,这个值根据应用实际情况调整。
2)Min-idle:关掉多余连接,保留有效连接,节省数据库的资源,这个值根据应用实际情况调整。
3)Max-wait,指应用线程等待连接的超时。可以配几秒范围,根据业务应用实际情况进行判定。
4)Validation-query,指的是连接池探测当前连接是否是健康的SQL语句。如果是较新的JDBC,不会发SQL语句,而是发Ping命令。
5)Validation-query-timeout,指的就是探测超时的时间。
6)Test-on-borrow指连接从连接池里取出时,连接池是否需要对连接进行健康探测。建议关闭False。
7)Test-on-return,建议关闭False。
8)Test-while-idle,指的是控制当连接处于空闲状态时,是否需检测连接的健康状态。建议打开True。
9)Time-between-eviction-runs-millis指的是触发空闲连接健康探测阈值,需要跟上面的Test-while结合起来。
10)Remove-abandoned,泄露连接强制回收,默认是False关闭。
11)Remove-abandoned-timeout,指的是强制回收的触发时间阈值。配置时间不要太短,因为业务长时间使用连接,所以超时时间要比业务实际合理时间要高。配置参数单位是“秒”。

整合流程

  • 进行依赖的导入
  •   <!-- https://mvnrepository.com/artifact/com.alibaba/druid
         druid数据源,
         -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.8</version>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/log4j/log4j 
       根据配置内容进行监控日志jar包
        -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    
  • 配置application.yml文件
  • spring:
      datasource:
      username: xx    # 用户名
      password: xx  #  密码
      driver-class-name: com.mysql.cj.jdbc.Driver    #加载驱动
      # 连接数据库
      url: jdbc:mysql://localhost:3306/BlogS?useSSL=true&useUnicode=true&characterEncoding=utf-8
      type: com.alibaba.druid.pool.DruidDataSource  #  切换成Druiid数据源
      druid:
         # SpringBoot默认是不注入这些的,需要自己绑定
         # druid数据源专有配置
        initialSize: 5
        minIdle: 5
        maxActive: 20
        maxWait: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1 FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        filters: stat,wall,log4j
        maxPoolPreparedStatementPerConnectionSize: 20
        useGlobalDataSourceStat: true
        connectionoProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
        stat-view-servlet:
          allow: 127.0.0.1     # 只允许本机访问
          login-username: admin  # 配置Druid后台用户名
          login-password: 123456  # 配置Druid后台密码
          url-pattern: /druid/*    #  配置访问路径
          enabled: true   
          reset-enable: true
    
  • 测试
    在这里插入图片描述
  • 输入用户名,密码进行登录
    在这里插入图片描述
  • 数据源信息
    在这里插入图片描述
  • 当我们对数据进行CRUD等相关数据库操作时,Druid数据源(与其他数据源不同之处,Druid有强大的日志监控功能)将对执行操作进行监控。
    • 对后台数据进行一个访问
      在这里插入图片描述
      此时,我们所配置的Druid中将监控SQL的执行:
      在这里插入图片描述

至此,上述仅是一个简单的Druid连接池案例,但Druid的功能肯定远不止如此,还要继续深入学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值