版本说明:本次测试使用springboot2.5.5版本,引入的依赖版本跟parent走
导入依赖
mysql
mysql-connector-java
com.alibaba
druid-spring-boot-starter
1.2.8
org.springframework.boot
spring-boot-starter-jdbc
配置文件
spring:
datasource:
druid:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: root
#2.连接池配置
#初始化连接池的连接数量 大小,最小,最大
initialSize: 5
min-idle: 5
max-active: 20
#配置获取连接等待超时的时间
max-wait: 60000
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 30000
validationQuery: SELECt 1 FROM DUAL
test-while-idle: true
test-on-borrow: true
test-on-return: false
# 是否缓存preparedStatement,也就是PSCache
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,slf4j
#3.基础监控配置
web-stat-filter:
enabled: true
url-pattern: /*
#设置不统计哪些URL
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
session-stat-enable: true
session-stat-max-count: 100
stat-view-servlet:
enabled: true
url-pattern: /druid/*
reset-enable: true
#设置监控页面的登录名和密码
login-username: admin
login-password: 123456
allow: 127.0.0.1
编写测试Controller
package com.xwzhou.Controller;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class JdbcController {
@Autowired
private JdbcTemplate jdbcTemplate;
@GetMapping(value = "/select")
public List
运行项目验证
1、 启动项目,可以看到
2、 访问druid监控页面,用户名和密码就是配置文件里配置的
3、访问接口,测试监控sql日志
4、 查看参数是否和配置文件一致
如果以上都几点都没问题,那么恭喜你大功告成!
参考:
[https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter]



