若依(RuoYi)框架 Druid 配置详解

简介: 核心说明:Druid 是阿里巴巴开源的高性能数据库连接池,兼具连接池管理、SQL监控、防SQL注入、日志记录等核心功能,若依(RuoYi)框架(含RuoYi-Vue、RuoYi-Cloud)已默认集成 Druid,核心配置集中在 application-druid.yml 文件,同时需配合 application.yml 进行环境关联,以下是完整配置解析、实操步骤及常见问题,适配若依框架全版本,兼顾入门使用与进阶优化。

 核心说明:Druid 是阿里巴巴开源的高性能数据库连接池,兼具连接池管理、SQL监控、防SQL注入、日志记录等核心功能,若依(RuoYi)框架(含RuoYi-Vue、RuoYi-Cloud)已默认集成 Druid,核心配置集中在 application-druid.yml 文件,同时需配合 application.yml 进行环境关联,以下是完整配置解析、实操步骤及常见问题,适配若依框架全版本,兼顾入门使用与进阶优化。

若依最新源码下载:

https://gitee.com/ruoyieleadmin/ruoyi-ele-admin

一、Druid 配置前置说明(必看)

1. 配置文件位置

若依框架的 Druid 配置采用“主配置+分配置”模式,核心文件路径如下(以若依单体版为例):


  • 主配置文件:src/main/resources/application.yml —— 关联 Druid 分配置,指定环境、数据源类型等基础参数;
  • Druid 核心配置文件:src/main/resources/application-druid.yml —— 存放 Druid 连接池、监控、过滤等全部核心配置,是配置的核心文件。

2. 依赖说明(无需手动导入)

若依框架已默认引入 Druid 相关依赖(含连接池、监控模块),在 pom.xml 中可查看,无需手动添加,核心依赖如下:

<!-- Druid 连接池依赖 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.16</version> <!-- 若依默认版本,可按需升级 -->
</dependency>

image.gif

3. 核心配置逻辑

若依框架通过 DruidConfig 配置类(路径:com.ruoyi.framework.config.DruidConfig)统一管理 Druid 连接池,该类会读取 application-druid.yml 中的配置,初始化 Druid 数据源、监控 servlet、过滤规则等,实现“配置即生效”,无需额外编写代码。

二、核心配置文件完整解析(application-druid.yml)

以下是若依框架默认 application-druid.yml 完整配置,按“数据源基础配置、连接池参数、监控配置、过滤配置”分类解析,标注必配项、可选项及优化建议,所有配置均可直接复制使用并按需修改。

(一)基础数据源配置(必配,核心)

用于配置数据库连接信息,关联数据库类型(MySQL、Oracle等),是 Druid 连接池的基础,若依框架支持主从数据源配置,以下以 MySQL 为例(最常用):

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource  # 固定指定 Druid 数据源类型
    druid:
      # 主数据源配置(若依默认单数据源,主从配置可新增 slave 节点)
      master:
        url: jdbc:mysql://localhost:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root  # 数据库用户名(替换为自己的数据库账号)
        password: 123456  # 数据库密码(替换为自己的数据库密码)
        driver-class-name: com.mysql.cj.jdbc.Driver  # MySQL 8.0+ 驱动类(5.7版本为 com.mysql.jdbc.Driver)
      # 从数据源配置(可选,主从分离时启用)
      # slave:
      #   url: jdbc:mysql://localhost:3306/ruoyi_slave?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
      #   username: root
      #   password: 123456
      #   driver-class-name: com.mysql.cj.jdbc.Driver

image.gif

关键说明:

  • url 参数:需替换 localhost:3306 为实际数据库地址和端口,ruoyi 为若依框架默认数据库名,若使用 Oracle、SQL Server,需修改 url 格式和 driver-class-name;
  • username/password:必须替换为实际数据库的账号密码,否则无法连接数据库;
  • 主从分离:若需实现主从分离(读写分离),启用 slave 节点配置,若依框架会自动实现“写主库、读从库”的逻辑,无需额外开发。

(二)Druid 连接池核心参数(必配,性能优化关键)

用于配置连接池的连接数量、超时时间、检测规则等,直接影响系统性能,以下是若依默认配置+优化建议,适配不同并发场景:

spring:
  datasource:
    druid:
      # 连接池通用配置(主从数据源共用,也可单独配置到 master/slave 节点)
      initial-size: 5  # 初始化连接数(默认5,建议:低并发5-10,高并发10-20)
      min-idle: 10  # 最小空闲连接数(默认10,确保空闲时仍有连接可用,避免频繁创建连接)
      max-active: 20  # 最大活跃连接数(默认20,核心参数!需根据并发量调整,建议不超过数据库最大连接数)
      max-wait: 60000  # 获取连接的最大等待时间(单位:毫秒,默认60000,超时则抛出异常)
      time-between-eviction-runs-millis: 60000  # 连接检测时间间隔(单位:毫秒,默认60000,定期检测空闲连接)
      min-evictable-idle-time-millis: 300000  # 连接最小空闲时间(单位:毫秒,默认300000,超过则回收)
      validation-query: SELECT 1 FROM DUAL  # 连接有效性检测SQL(MySQL/Oracle通用,无需修改)
      test-while-idle: true  # 空闲时检测连接有效性(建议开启,避免无效连接)
      test-on-borrow: false  # 获取连接时检测(不建议开启,会影响性能)
      test-on-return: false  # 归还连接时检测(不建议开启,会影响性能)
      pool-prepared-statements: true  # 开启预编译语句池(建议开启,提升SQL执行效率)
      max-pool-prepared-statement-per-connection-size: 20  # 每个连接的预编译语句最大数量

image.gif

优化建议(重点):

  • 高并发场景(如多用户同时操作):调整 max-active: 50min-idle: 20,确保足够的活跃连接,避免连接不足导致超时;
  • 低并发场景(如后台管理系统):保持默认配置即可,无需过度调整,避免资源浪费;
  • 连接泄漏排查:若出现“连接耗尽”异常,可开启log-abandoned: true(添加到上述配置中),打印连接泄漏日志,定位问题代码。

(三)Druid 监控配置(推荐配置,便于运维)

Druid 自带监控面板,可实时查看连接池状态、SQL执行情况、慢SQL等,若依框架已默认配置监控,只需启用并调整访问权限即可,配置如下:

spring:
  datasource:
    druid:
      # 监控配置
      stat-view-servlet:
        enabled: true  # 启用监控面板(必设为true,否则无法访问)
        url-pattern: /druid/*  # 监控面板访问路径(默认/druid/*,可自定义)
        login-username: admin  # 监控面板登录用户名(自定义,建议修改,避免默认账号泄露)
        login-password: admin  # 监控面板登录密码(自定义,建议修改)
        reset-enable: false  # 是否允许重置监控数据(默认false,不建议开启)
        # 监控面板访问白名单(允许访问的IP,多个用逗号分隔,*表示允许所有IP)
        allow: 127.0.0.1,192.168.1.0/24
        # 监控面板访问黑名单(禁止访问的IP,优先级高于白名单)
        deny: 192.168.1.100
      # 监控过滤配置(采集SQL执行信息)
      web-stat-filter:
        enabled: true  # 启用web监控过滤
        url-pattern: /*  # 监控所有请求
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"  # 排除静态资源和监控自身路径

image.gif

监控面板使用方法:

  1. 启动若依项目,访问地址:http://localhost:8080/druid/index.html(端口需替换为项目实际端口);
  2. 输入配置的 login-username 和 login-password 登录,即可查看核心监控数据:
  1. 数据源:查看连接池的初始化、空闲、活跃连接数,以及连接创建/销毁情况;
  2. SQL监控:查看所有执行的SQL语句、执行时间、行数,可筛选慢SQL(默认执行时间>1000ms);
  3. Web应用:查看请求路径、访问次数、耗时等;
  4. 防御SQL注入:查看被拦截的SQL注入请求,Druid 会自动拦截常见的SQL注入语句。

注意:生产环境中,建议修改监控面板的用户名密码,并限制访问IP(避免外部访问),提升安全性。

(四)过滤配置(可选,安全+性能优化)

Druid 提供多种过滤器,用于防SQL注入、日志记录、编码处理等,若依框架默认启用核心过滤器,配置如下:

spring:
  datasource:
    druid:
      filters: stat,wall,log4j2  # 启用的过滤器(stat:监控统计,wall:防SQL注入,log4j2:日志记录)
      # 过滤器详细配置(可选,按需调整)
      filter:
        stat:
          slow-sql-millis: 1000  # 慢SQL阈值(单位:毫秒,默认1000,超过则记录日志)
          log-slow-sql: true  # 记录慢SQL日志(建议开启,便于排查性能问题)
        wall:
          enabled: true  # 启用防SQL注入(必开启,提升系统安全性)
          config:
            multi-statement-allow: false  # 禁止多语句执行(防止SQL注入批量操作)
            none-base-statement-allow: false  # 禁止非基础语句执行

image.gif

关键说明:

  • filters 配置:多个过滤器用逗号分隔,stat 和 wall 是必配的,log4j2 需确保项目引入 log4j2 依赖(若依默认引入);
  • wall 过滤器:核心用于防SQL注入,禁止多语句执行、非基础语句执行,避免恶意SQL攻击;
  • 慢SQL配置:通过 slow-sql-millis 定义慢SQL,开启 log-slow-sql 后,慢SQL会记录到日志中,便于定位性能瓶颈。

三、application.yml 关联配置(必配)

需在 application.yml 中指定启用 Druid 配置,关联 application-druid.yml,核心配置如下(若依默认已配置,无需修改,仅作说明):

spring:
  # 环境配置(dev/test/prod),需确保与 application-druid.yml 环境一致
  profiles:
    active: dev  # 启用开发环境,对应 application-druid.yml 中的环境配置
  # 数据源基础关联(若依框架会自动读取 application-druid.yml 中的 Druid 配置)
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource  # 与 application-druid.yml 中保持一致

image.gif

说明:若需区分开发、测试、生产环境,可创建 application-druid-dev.ymlapplication-druid-prod.yml,分别配置不同环境的数据库信息和连接池参数,通过spring.profiles.active 切换环境。

四、常见问题及解决方案(重点)

1. 数据库连接失败(最常见)

  • 报错信息:Could not get JDBC Connection; nested exception is com.alibaba.druid.pool.DruidDataSource$CreateConnectionException: create connection SQLException
  • 解决方案:
  • 检查 application-druid.yml 中 url、username、password 是否正确,数据库地址和端口是否可达;
  • 检查数据库服务是否启动,是否允许当前IP访问(如MySQL的防火墙、权限设置);
  • 检查 driver-class-name 是否与数据库版本匹配(MySQL 8.0+ 需用 com.mysql.cj.jdbc.Driver)。

2. 监控面板无法访问(404/403)

  • 报错信息:404(路径错误)、403(权限拒绝);
  • 解决方案:
  • 检查 stat-view-servlet.enabled 是否设为 true;
  • 检查访问路径是否正确(默认 /druid/index.html),若修改了 url-pattern,需对应调整访问路径;
  • 403 错误:检查 allow/deny 配置,确保当前访问IP在白名单中,或设置 allow: "*"(生产环境不建议);
  • 若依框架开启了 Shiro 权限控制,需在 Shiro 配置中放行 /druid/** 路径,避免被拦截。

3. 连接池耗尽(超时)

  • 报错信息:wait millis 60000, active 20, maxActive 20(连接数达到最大值);
  • 解决方案:
  • 提升 max-active 参数(建议不超过数据库最大连接数,MySQL默认最大连接数为151);
  • 检查代码中是否存在连接泄漏(如未关闭 Connection、事务未提交),开启 log-abandoned: true 排查泄漏代码;
  • 优化SQL执行效率,减少慢SQL,避免连接长时间被占用;
  • 启用连接池预热:在 DruidConfig 中添加预热代码,提前初始化连接,避免高峰期连接不足。

4. 慢SQL过多,系统性能卡顿

  • 现象:系统响应慢,监控面板中慢SQL数量多;
  • 解决方案:
  • 通过 Druid 监控面板定位慢SQL(SQL监控页,按执行时间排序);
  • 使用 EXPLAIN 分析慢SQL执行计划,优化查询逻辑(如添加索引、避免全表扫描、简化JOIN操作);
  • 调整 slow-sql-millis 阈值,区分正常慢SQL和异常慢SQL,重点优化异常慢SQL;
  • 开启预编译语句池(pool-prepared-statements: true),提升SQL执行效率。

五、进阶优化建议(生产环境必备)

  1. 主从分离:高并发场景下,配置主从数据源(master写、slave读),减少主库压力,若依框架已支持,只需在 application-druid.yml 中配置 slave 节点即可;
  2. 连接池监控告警:结合监控面板数据,设置告警阈值(如 activeCount 持续接近 maxActive),及时发现性能瓶颈;
  3. 定期巡检:每周查看 Druid 监控面板,排查慢SQL、连接泄漏等问题,建立性能基线,便于及时发现异常;
  4. 版本升级:定期升级 Druid 版本(若依默认版本可升级至最新稳定版),修复已知bug,提升性能和安全性;
  5. 密码加密:生产环境中,数据库密码不建议明文存储,可使用 Druid 提供的密码加密工具,加密后配置到 application-druid.yml 中,提升安全性。

六、总结

若依框架的 Druid 配置核心是 application-druid.yml,重点关注“基础数据源配置、连接池参数、监控配置”三大模块,无需额外开发,配置完成后即可生效。入门阶段,可直接使用若依默认配置,替换数据库账号密码即可;生产环境中,需根据并发量调整连接池参数、优化监控配置、开启安全防护,确保系统稳定高效运行。

补充:若使用若依微服务版(RuoYi-Cloud),Druid 配置逻辑与单体版一致,核心配置文件位于 gateway 或各业务模块的 application-druid.yml 中,配置方式完全相同。

若依最新源码下载:

https://gitee.com/ruoyieleadmin/ruoyi-ele-admin

相关文章
|
1天前
|
人工智能 自然语言处理 JavaScript
2026年Windows+Ollama本地部署OpenClaw保姆级教程:本地AI Agent+阿里云上快速搭建
2026年OpenClaw凭借本地部署、私有化运行的特性,成为打造个人智能体的核心工具,而Ollama作为轻量级本地大模型管理工具,能让OpenClaw摆脱对云端大模型的依赖,实现**本地推理、数据不泄露、全流程私有化**的智能体验。本文基于Windows 11系统,从硬件环境准备、Ollama安装与模型定制、OpenClaw部署配置、技能扩展到常见问题排查,打造保姆级本地部署教程,同时补充阿里云OpenClaw(Clawdbot)快速部署步骤,兼顾本地私有化需求与云端7×24小时运行需求,文中所有代码命令均可直接复制执行,确保零基础用户也能快速搭建属于自己的本地智能体。
3310 13
|
13天前
|
人工智能 自然语言处理 监控
OpenClaw skills重构量化交易逻辑:部署+AI全自动炒股指南(2026终极版)
2026年,AI Agent领域最震撼的突破来自OpenClaw(原Clawdbot)——这个能自主规划、执行任务的智能体,用50美元启动资金创造了48小时滚雪球至2980美元的奇迹,收益率高达5860%。其核心逻辑堪称教科书级:每10分钟扫描Polymarket近千个预测市场,借助Claude API深度推理,交叉验证NOAA天气数据、体育伤病报告、加密货币链上情绪等多维度信息,捕捉8%以上的定价偏差,再通过凯利准则将单仓位严格控制在总资金6%以内,实现低风险高频套利。
6692 60
|
8天前
|
存储 人工智能 负载均衡
阿里云OpenClaw多Agent实战宝典:从极速部署到AI团队搭建,一个人=一支高效军团
在AI自动化时代,单一Agent的“全能模式”早已无法满足复杂任务需求——记忆臃肿导致响应迟缓、上下文污染引发逻辑冲突、无关信息加载造成Token浪费,这些痛点让OpenClaw的潜力大打折扣。而多Agent架构的出现,彻底改变了这一现状:通过“单Gateway+多分身”模式,让一个Bot在不同场景下切换独立“大脑”,如同组建一支分工明确的AI团队,实现创意、写作、编码、数据分析等任务的高效协同。
3106 27
|
30天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
44671 157
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
4天前
|
人工智能 JavaScript API
2026年Windows系统本地部署OpenClaw指南:附阿里云简易部署OpenClaw方案,零技术基础也能玩转AI助手
在AI办公自动化全面普及的2026年,OpenClaw(原Clawdbot、Moltbot)凭借“自然语言指令操控、多任务自动化执行、多工具无缝集成”的核心优势,成为个人与轻量办公群体打造专属AI助手的首选。它彻底打破了传统AI“只会对话不会执行”的局限——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可灵活接入通义千问、OpenAI等云端API,或利用本地GPU运行模型,真正实现“聊天框里办大事”。
1084 2
|
2天前
|
人工智能 JSON JavaScript
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
手把手教你用 OpenClaw(v2026.2.22-2)+ 飞书,10分钟零代码搭建专属AI机器人!内置飞书插件,无需额外安装;支持Claude等主流模型,命令行一键配置。告别复杂开发,像聊同事一样自然对话。
1126 5
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
|
7天前
|
人工智能 自然语言处理 安全
2026年OpenClaw Skills安装指南:Top20必装清单+阿里云上部署实操(附代码命令)
OpenClaw(原Clawdbot)的强大之处,不仅在于其开源免费的AI执行引擎核心,更在于其庞大的Skills生态——截至2026年2月,官方技能市场ClawHub已收录1700+各类技能插件,覆盖办公自动化、智能交互、生活服务等全场景。但对新手而言,面对海量技能往往无从下手,盲目安装不仅导致功能冗余,还可能引发权限冲突与安全风险。
1617 9
|
2天前
|
人工智能 运维 安全
OpenClaw极速部署:ZeroNews 远程管理OpenClaw Gateway Dashboard指南+常见错误解决
OpenClaw作为高性能AI智能体网关平台,其Gateway Dashboard是管理模型调用、渠道集成、技能插件的核心操作界面,但默认仅支持本地局域网访问。官方推荐的Tailscale、VPN等远程访问方案在国内网络环境中体验不佳,而ZeroNews凭借轻量化部署、专属域名映射、多重安全防护的特性,成为适配国内网络的最优远程管理解决方案。
1037 2

热门文章

最新文章