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连接池介绍

  • 相关阅读:
    SuperMap房产测绘成果管理平台
    SuperMap产权登记管理平台
    Android adb shell am 的用法(1)
    由浅入深谈Perl中的排序
    Android 内存监测和分析工具
    Android 网络通信
    adb server is out of date. killing...
    引导页使用ViewPager遇到OutofMemoryError的解决方案
    adb logcat 详解
    How to send mail by java mail in Android uiautomator testing?
  • 原文地址:https://www.cnblogs.com/pandaNHF/p/15709982.html
Copyright © 2011-2022 走看看