Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource
整体步骤:
(1) Druid简单介绍,具体看官网;
(2) 在pom.xml配置druid依赖包;
(3) 配置application.properties加入数据库源类型等参数;
(4) 编写druid servlet和filter提供监控页面访问;
(5) 输入地址进行测试;
Druid是Java语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能。
业界把 Druid 和 HikariCP 做对比后,虽说 HikariCP 的性能比 Druid 高,但是因为 Druid 包括很多维度的统计和分析功能,所以这也是大家都选择使用它的原因。
下面来说明如何在 SpringBoot 中配置使用Druid
(1)添加Maven依赖 (或jar包)
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.18</version>
</dependency>
(2)、配置数据源相关信息
# 数据库访问配置
# 主数据源,默认的
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
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 FROMDUAL
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,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多个DruidDataSource的监控数据
#spring.datasource.useGlobalDataSourceStat=true
需要注意的是:spring.datasource.type旧的spring boot版本是不能识别的。
这时候启动应用就可以看到看到打印信息就是使用我们配置的数据源了:
[main]com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
(3) 配置监控统计功能
配置Servlet
如下是在SpringBoot项目中基于注解的配置,如果是web.xml配置,按规则配置即可。
com.kfit.base.servlet.DruidStatViewServlet :
package com.kfit.base.servlet;
importjavax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
importcom.alibaba.druid.support.http.StatViewServlet;
/**
*druid数据源状态监控.
*@author Administrator
*
*/
@WebServlet(urlPatterns="/druid/*",
initParams={
@WebInitParam(name="allow",value="192.168.1.72,127.0.0.1"),// IP白名单 (没有配置或者为空,则允许所有访问)
。。。。。。。。。。。。。。。。。
版权原因,完整文章,请参考如下:15、Spring Boot使用Druid和监控配置【从零开始学Spring Boot】