1. Druid概述
Druid是阿里巴巴开源项目中的一个数据库连接池.Druid是一个JDBC组件,它包括三部分:
* DruidDriver代理Driver,他可以提供基于Filter-Chain模式的插件体系;
* DruidDataSource高效可管理的数据库连接池;
* SQLParser,支持所有JDBC兼容的数据库,包括Oracle,MySQL,SQL Server等.
Druid在监控,可扩展,稳定性,和性能方面有着明显的优势,通过其提供的监控功能可以观察数据库连接池和SQL查询的工作情况,使用Druid连接池可以提高数据库的访问性能.
2. 依赖的引入
使用Druid须要在POM.xml文件中引入该依赖:
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
引入该依赖后,IDEA会自动帮助我们完成依赖包的下载.
3. Druid的配置
依赖添加完成之后,在application.yml
配置文件中继续添加Druid配置,因为一般是同Mysql等数据库一同使用,所以完整的Druid配置代码如下:
# 数据库访问配置
# 主数据源,默认的
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/druid?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall