在SpringBoot中使用Druid

Druid的配置

application.yml

复制代码
server:
  port: 8080

spring:
  application:
    name: druid-test
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/for_test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root
    druid:
      db-type: mysql
      initial-size: 5
      min-idle: 5
      max-active: 20
      max-wait: 60000
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 1
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      filters: stat,wall
      connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        reset-enable: false
        login-username: admin
        login-password: admin
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
    properties:
      hibernate:
        format_sql: true
        dialect: org.hibernate.dialect.MySQL5InnoDBDialect

启动后输入:http://localhost:8080/druid 可以进入druid的后台界面。

账号密码是admin admin

Druid 连接池与监控配置详解

主要分为三大模块:


1. stat-view-servlet --- Druid 监控页面配置
复制代码
stat-view-servlet:
  enabled: true                  # 启用 Druid 内置监控页面
  url-pattern: /druid/*          # 监控页面访问路径(如 http://{ip}:{port}/druid/index.html)
  login-username: admin          # 监控页面登录用户名
  login-password: GeoAdmin2026   # 监控页面登录密码
  reset-enable: false            # 禁止在页面上重置统计数据(更安全)
  allow: 127.0.0.1               # 仅允许本机(127.0.0.1)访问监控页面
  • 作用:提供可视化的数据库连接池、SQL 执行、Web 请求等监控面板。
  • 安全限制:allow: 127.0.0.1 表示只有本地能访问,防止外部泄露敏感数据。

2. web-stat-filter --- Web 应用统计过滤器
复制代码
web-stat-filter:
  enabled: true                  # 启用 Web 应用统计功能
  url-pattern: /*                # 对所有请求路径进行统计
  exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"  # 排除静态资源和 Druid 自身请求
  • 作用:统计 Web 请求与数据库操作的关联(如某个接口执行了哪些 SQL)。
  • 排除规则:避免静态资源和监控页面本身被统计,减少干扰数据。

3. filter.stat --- SQL 统计与慢查询监控
复制代码
filter:
  stat:
    enabled: true                # 启用 SQL 统计功能
    slow-sql-millis: 1000        # 定义慢 SQL 阈值:执行时间超过 1000ms(1秒)即为慢查询
    log-slow-sql: true           # 记录慢查询日志
  • 作用:自动收集 SQL 执行性能数据,并将超过 1 秒的 SQL 标记为慢查询并记录日志。
  • 用途:帮助定位性能瓶颈,优化慢 SQL 语句。
相关推荐
wbs_scy12 分钟前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·开发语言
ss27326 分钟前
食谱推荐系统功能测试如何写?
java·数据库·spring boot·功能测试
2301_8112743139 分钟前
基于SpringBoot的智能家居管理系统
spring boot·后端·智能家居
毕设源码_古学姐42 分钟前
计算机毕业设计springboot智能家居项目管理系统 基于SpringBoot的智能家居项目管理平台设计与实现 SpringBoot技术驱动的智能家居项目管理系统开发
spring boot·智能家居·课程设计
毕设源码-张学姐1 小时前
计算机毕业设计springboot智能家居设备信息管理系统 基于SpringBoot的智能家居设备全生命周期管理平台 面向智慧家庭的SpringBoot设备资产与场景运营系统
spring boot·智能家居·课程设计
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题】【Java基础篇】第15题:JDK1.7中HashMap扩容为什么会发生死循环?如何解决
java·开发语言·数据结构·后端·面试·哈希算法
舒一笑1 小时前
我把设备指纹生成逻辑拆开了:它到底凭什么区分不同设备?
后端·程序员·掘金技术征文
try2find1 小时前
打印ascii码报错问题
java·linux·前端
014-code1 小时前
CompletableFuture 实战模板(超时、组合、异常链处理)
java·数据库
Nicander1 小时前
多数据源下@transcation事务踩坑
java·后端