zoukankan      html  css  js  c++  java
  • 【SpringBoot】SpringBoot集成druid

    Druid是什么?

    是阿里开发的一个数据库连接池,在别的连接池基础上,还能实现监控sql运行情况,连接信息等,还可以通过配置记录日志和防sql注入。

    快速开始

    1. 依赖

              <dependency>
                  <groupId>com.alibaba</groupId>
                  <artifactId>druid-spring-boot-starter</artifactId>
                  <version>1.1.17</version>
              </dependency>
      

      如果需要配置日志:

              <dependency>
                  <groupId>log4j</groupId>
                  <artifactId>log4j</artifactId>
                  <version>1.2.17</version>
              </dependency>
      
    2. 配置

      spring:
        datasource:
          name: druidDataSource
          type: com.alibaba.druid.pool.DruidDataSource
          druid:
            driver-class-name: com.mysql.cj.jdbc.Driver
            url: jdbc:mysql://localhost:3306/databasename?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
            username: root
            password: 12341234
            #属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:
            #监控统计用的filter:stat
            #日志用的filter:log4j
            #防御sql注入的filter:wall
            filters: stat,wall,log4j
            #初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
            initialSize: 10
            #最小连接池数量
            minIdle: 10
            #最大连接池数量
            maxActive: 100
            #获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。
            maxWait: 60000
            #有两个含义:
            #1) Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接。
            #2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明
            timeBetweenEvictionRunsMillis: 60000
            #连接保持空闲而不被驱逐的最小时间
            minEvictableIdleTimeMillis: 300000
            #用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。
            #如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
            validationQuery: SELECT 'X'
            #建议配置为true,不影响性能,并且保证安全性。
            #申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
            testWhileIdle: true
            #申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
            testOnBorrow: false
            #归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
            testOnReturn: false
            #是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
            poolPreparedStatements: false
            #要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100
            maxPoolPreparedStatementPerConnectionSize: -1
      
    3. 正常启动即算是集成成功。

      2021-12-20 10:56:39.747  INFO 9776 --- [  restartedMain] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource
      2021-12-20 10:56:40.558  INFO 9776 --- [  restartedMain] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
      

    文档地址:https://github.com/alibaba/druid/wiki/Druid连接池介绍

  • 相关阅读:
    util-tool工具 、时间格式化
    好用的 UI 调试技巧
    扩展jQuery的方法
    mybatis判断是否传递了条件
    mysql创建视图不允许子查询
    springMVC传递MAP给JS
    XPS15 安装ubuntu之后无法进入系统
    XPS15 9560 切换显卡之后,无法登陆的解决方式
    fedora安装chrome报错
    linux挂载硬盘
  • 原文地址:https://www.cnblogs.com/pandaNHF/p/15709982.html
Copyright © 2011-2022 走看看