druid

一、什么是druid?

  Druid是Java语言中最好的数据库连接池,由阿里巴巴团队开发。Druid能够提供强大的监控和扩展功能。 github地址为https://github.com/alibaba/druid,有丰富的中文文档和常见问题的解答,非常方便。

  数据库本身就有默认的最大连接数,如果超过最大连接数连接数据库,会导致项目报错。而druid连接池,可以配置最大连接数,且不会超过数据本身设置的最大连接数。

二、pom.xml

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.20</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/log4j/log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>    

三、配置文件

#配置DataSource,使用druid
#需要注意的是:spring.datasource.type属性,旧的spring boot版本是不能识别的。
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/orders?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root

# 连接池的配置信息
#数据源其他配置,需要增加Druid的配置类(不然不生效)
#配置见:com.lqy.springboot.datasource.druid.DruidConfig
spring.datasource.druid.initialSize=5
spring.datasource.druid.minIdle=5
spring.datasource.druid.maxActive=20
spring.datasource.druid.maxWait=60000
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
spring.datasource.druid.minEvictableIdleTimeMillis=300000
spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.testOnBorrow=false
spring.datasource.druid.testOnReturn=false
spring.datasource.druid.poolPreparedStatements=true
#配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.druid.filters=stat,wall,log4j
spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.druid.useGlobalDataSourceStat=true
spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

四、web程序如何监视dao所在的factory

   <servlet>
        <servlet-name>DruidStatView</servlet-name>
        <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
        <init-param>
            <param-name>resetEnable</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>DruidStatView</servlet-name>
        <url-pattern>/druid/*</url-pattern>
    </servlet-mapping>

逻辑打开数量:dataSource.getConnect()的数量

逻辑关闭数量:.close()的数量

“逻辑打开数量”应等于“逻辑关闭数量”

原文地址:https://www.cnblogs.com/lyrongblog/p/14193472.html