游乐游手机版
首页/编程语言/文章详情

SpringBoot整合Druid参数配置详细步骤

时间:2026-07-30 22:08
SpringBoot整合Druid需引入官方Starter依赖,在application yml配置基本连接信息、指定数据源类型及连接池参数,如初始连接数、最大活跃数、超时设置、有效性检测SQL等。建议开启监控统计与SQL防火墙,访问 druid 控制台。注意避免与Hikari配置冲突,生产环境开启test-while-idle。

1. 整合步骤(基于 Spring Boot 官方 Starter)

在 Spring Boot 项目中整合 Druid 连接池,官方推荐的方案是直接使用其专属 Starter 组件。这样一来,大量重复性配置工作可以被有效简化,你只需专注于核心参数调优即可。以下是完整的整合操作流程。

第一步:引入 Ma ven 依赖

在项目 pom.xml 文件中添加以下依赖项,建议选用最新稳定版本,例如 1.2.20,以确保功能与安全性。


    com.alibaba
    druid-spring-boot-starter
    1.2.20 

第二步:在application.yml中配置数据源和连接池参数

依赖引入完成后,接下来需要在 application.yml 中配置数据源基本信息以及 Druid 连接池专属参数,两者缺一不可。下面给出了一份可直接用于生产环境的配置示例。

spring:
  datasource:
    # 基本连接信息(必须)
    url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    # 指定使用 Druid 数据源(必须)
    type: com.alibaba.druid.pool.DruidDataSource
    # Druid 连接池专属参数(核心清单见下文)
    druid:
      # 初始连接数
      initial-size: 5
      # 最小空闲连接数
      min-idle: 5
      # 最大活跃连接数
      max-active: 20
      # 获取连接超时时间(毫秒)
      max-wait: 60000
      # 连接保持空闲而不被回收的最小时间(毫秒)
      time-between-eviction-runs-millis: 60000
      # 连接在池中最小生存时间(毫秒)
      min-evictable-idle-time-millis: 300000
      # 验证连接是否有效的 SQL(MySQL 使用)
      validation-query: SELECT 1 FROM DUAL
      # 验证超时时间(秒)
      validation-query-timeout: 3
      # 申请连接时执行 validation-query 检测
      test-on-borrow: false
      # 归还连接时执行 validation-query 检测
      test-on-return: false
      # 空闲时检测连接有效性(建议开启)
      test-while-idle: true
      # 监控统计 + 日志 + 防御 SQL 注入(配置三个插件)
      filters: stat,log4j2,wall
      # StatFilter 监控配置
      stat:
        log-slow-sql: true
        slow-sql-millis: 2000
        merge-sql: true
      # WallFilter(SQL 防火墙)配置
      wall:
        config:
          delete-where-none-check: true
      # 监控页面(Druid Console)访问配置
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        login-username: admin
        login-password: admin123
        reset-enable: false
      # Web 应用监控(URI 统计)
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'

2. Druid 连接池完整核心参数清单

下面这张表格完整罗列了 Druid 连接池的核心参数,涵盖了参数含义、默认取值以及推荐配置,在实际项目开发与调优过程中可以直接参考使用。

参数名说明默认值推荐值(示例)
initial-size初始化时创建的连接数05~10
min-idle最小空闲连接数05~10
max-active最大活跃连接数(最大并发数)820~100(视业务)
max-wait获取连接最大等待时间(毫秒),超时抛异常-1(无限)60000
time-between-eviction-runs-millis空闲连接检查/回收的间隔(毫秒)60000(1分钟)60000
min-evictable-idle-time-millis连接最小空闲时间,超过则被回收(毫秒)1800000(30分钟)300000(5分钟)
max-evictable-idle-time-millis连接最大空闲时间,强制回收(毫秒)25200000(7小时)-
validation-query验证连接有效性的 SQL(必须支持快速执行)nullMySQL: SELECT 1 / Oracle: SELECT 1 FROM DUAL
validation-query-timeout验证 SQL 执行超时时间(秒)-13
test-on-borrow获取连接时立即执行验证(影响性能)falsefalse
test-on-return归还连接时执行验证(影响性能)falsefalse
test-while-idle空闲时检测连接有效性(强烈建议开启)falsetrue
pool-prepared-statements是否缓存 PreparedStatement(PSCache)falsetrue(开启可提升性能)
max-pool-prepared-statement-per-connection-size每个连接缓存的 PreparedStatement 上限-120
filters扩展插件(用逗号分隔):stat(监控), wall(防火墙), log4j2(日志)-stat,wall,log4j2
connection-properties自定义连接属性,如 config.decrypt=true(密码解密)--
use-global-data-source-stat是否开启全局数据源统计false-

3. 监控页面(Druid Console)访问

应用启动成功后,在浏览器中访问以下地址即可进入 Druid 内置的监控控制台,实时查看连接池与 SQL 执行状况。

SpringBoot整合Druid并列出参数清单的代码步骤

https://localhost:你的端口/druid/login.html

登录时使用配置文件中设定的 login-username 和 login-password,认证通过后即可直观地查看 SQL 执行明细、连接池实时状态、URI 访问统计等关键监控数据,便于日常运维与性能分析。

4. 常见问题(避坑点)

  1. filters 配置的插件必须存在类路径。例如配置了 log4j2,项目中就必须引入 spring-boot-starter-log4j2 依赖,否则启动时将因缺失类而报错。
  2. 如果使用了 spring.datasource.druid 前缀,就不要再配置 spring.datasource 下的 hikari 参数了,两者会产生冲突,导致连接池行为异常,无法按预期工作。
  3. 生产环境下,建议开启 test-while-idle 结合 validation-query 来确保连接的有效性。但不要将 test-on-borrow 设为 true,因为每次获取连接时都执行验证会对响应时间造成较大影响,降低系统吞吐量。
来源:https://www.jb51.net/program/368320p4z.htm
上一篇Mybatisplus查询返回null但条数正确的原因分析 下一篇SpringMVC多种响应返回方式详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
面向对象编程:继承与方法重写入门教程:核心概念、操作步骤与结果验证
编程语言 · 2026-10-08

面向对象编程:继承与方法重写入门教程:核心概念、操作步骤与结果验证

从父类与子类的关系入手,理解继承、方法重写和多态的基本机制,通过完整代码示例完成继承结构创建、方法重写与运行验证,并梳理常见错误和使用注意事项。

Python应用打包与部署入门教程:核心概念、操作步骤与结果验证
编程语言 · 2026-10-01

Python应用打包与部署入门教程:核心概念、操作步骤与结果验证

从 Python 应用打包的基本概念入手,介绍项目环境准备、依赖管理、构建发布包、安装部署以及运行结果验证,并梳理常见打包失败与部署问题,帮助初学者完成从源码到可部署应用的完整流程。

Python CLI 开发避坑指南:从环境配置到参数解析的实战排查
编程语言 · 2026-10-01

Python CLI 开发避坑指南:从环境配置到参数解析的实战排查

本文聚焦 Python 命令行工具(CLI)开发中最高频的故障点,按执行链路梳理从环境配置、参数解析、路径处理到异常调试的完整排查流程。通过具体代码示例与终端输出对照,提供可复现的修复方案,帮助开发者快速定位 ModuleNotFoundError、参数校验失败及跨平台兼容性问题,构建更健壮的命令行

Python CLI 开发:从参数解析到工程化发布的完整路径
编程语言 · 2026-10-01

Python CLI 开发:从参数解析到工程化发布的完整路径

本文以 Python 命令行工具开发为切入点,从项目结构搭建与虚拟环境配置入手,深入讲解 argparse 参数解析与子命令设计。通过一个完整的日志分析工具案例,演示输入校验、错误处理与异常捕获的最佳实践,最后覆盖打包发布流程与常见排查技巧,帮助开发者构建健壮、易用的 CLI 应用。

Python 模块与包的工程化实践:结构、依赖与排错指南
编程语言 · 2026-10-01

Python 模块与包的工程化实践:结构、依赖与排错指南

本文从项目目录规范与模块导入机制切入,详细阐述虚拟环境的配置、第三方包的管理策略以及完整案例的模块化拆分方法。通过具体代码示例展示如何构建高内聚低耦合的代码结构,并针对 ModuleNotFoundError、ImportError 及依赖冲突等常见工程问题提供系统化的排查与解决方案,帮助开发者建立