SpringBoot整合Druid并开启监控
Druid是阿里巴巴开源的高性能数据库连接池,具备强大监控能力。与SpringBoot整合后,通过配置数据源和启用WebStatFilter、StatViewServlet,可实时监控数据库连接状态与SQL执行情况。访问/druid/页面输入凭证即可查看监控信息,有效提升数据访问性能与运维透明度。
Druid 是阿里巴巴开源的一款高性能数据库连接池,它不仅把连接管理这块做得滴水不漏,还自带一套相当强悍的监控和统计能力。当它与 Spring Boot 联手,不仅能大幅提升数据访问性能,更关键的——开发人员可以直接通过内置的监控页面,实时盯住数据库连接的状态、SQL 执行情况这些硬指标。一句话:既快又透明。
1. 引言
互联网应用跑得越来越快,对连接池的要求自然水涨船高。早期那些传统连接池,应付普通场景还行,真要扛高并发、高可用,往往力不从心。Druid 之所以能成为很多团队的首选,靠的就是扎实的性能优化、丰富的监控数据,以及灵活的配置空间。接下来,咱们一步步看看怎么在 Spring Boot 里把它请进来,再顺手把监控功能打开。
2. 添加依赖
第一步,老规矩——先把依赖扔进 pom.xml:
com.alibaba druid-spring-boot-3-starter 1.2.24
如果你用的是 Gradle,那就在 build.gradle 里加上这行:
implementation 'com.alibaba:druid-spring-boot-3-starter:1.2.24'
3. 配置数据源
依赖加好了,接下来就是配置 Druid 数据源。以 application.properties 为例:
# Druid 数据源配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20 spring.datasource.druid.test-on-borrow=true spring.datasource.druid.validation-query=SELECT 1 FROM DUAL # 监控页面设置 spring.datasource.druid.web-stat-filter.enabled=true spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.stat-view-servlet.login-username=druid spring.datasource.druid.stat-view-servlet.login-password=d1234
当然,YAML 的风格更清爽:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false
username: root
password: 1234
type: com.alibaba.druid.pool.DruidDataSource
druid:
test-on-borrow: true
validation-query: SELECT 1 FROM DUAL
web-stat-filter:
enabled: true
stat-view-servlet:
enabled: true
login-username: druid
login-password: d1234
这里配置了连接池的基本参数——初始大小、最小空闲、最大活动,都是常规操作。特别注意的是,还顺手启用了 Web 统计过滤器和 StatView Servlet,并且设置了监控页面的登录用户名和密码。后面就能用这些凭证进去看全景了。
4. 开启监控功能
光有数据源不够,要真正把 Druid 的监控能力发挥出来,得确保两个关键组件被打开:WebStatFilter(用来收集 SQL 慢查询日志)和 StatViewServlet(提供一个可视化监控页面)。
在配置文件里,这两项已经在上一步启用了。再单独拎出来强调一下:
spring.datasource.druid.web-stat-filter.enabled=true spring.datasource.druid.stat-view-servlet.enabled=true
除此之外,你还可以对监控页面的安全策略做更精细的调整——比如限定哪些 IP 可以访问,或者设置更复杂的登录凭证。这一步按需操作就好。
5. 自定义 Druid 配置(可选)
如果默认配置满足不了你的特殊需求,那就可以自己写一个配置类来接管。下面是一个常见的 Ja va 配置示例:
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource.druid")
@Bean
public DruidDataSource druidDataSource() {
return new DruidDataSource();
}
@Bean
public ServletRegistrationBean statViewServlet() {
ServletRegistrationBean bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
Map params = new HashMap<>();
params.put("loginUsername", username);
params.put("loginPassword", password);
params.put("allow", "localhost");
params.put("deny", "");
bean.setInitParameters(params);
return bean;
}
@Bean
public FilterRegistrationBean webStatFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
Map params = new HashMap<>();
params.put("exclusions", "*.js,*.css,/druid/*");
bean.setUrlPatterns(Arrays.asList("/*"));
bean.setInitParameters(params);
return bean;
}
}
这套代码做了三件事:创建 Druid 数据源、注册 StatViewServlet(并设置登录和黑白名单)、注册 WebStatFilter(并排除静态资源)。这样你就能完全掌控监控页面的访问规则了。
6. 访问监控页面
所有配置搞定后,启动 Spring Boot 应用,然后在浏览器里敲下这个地址:
http://localhost:8080/druid/
输入之前设置的用户名和密码,你就进入了一个信息量极大的监控界面。连接池的实时状态、SQL 执行的统计、慢查询记录……一应俱全。这个页面对于排查性能瓶颈、优化数据库交互来说,简直就是一把瑞士军刀。

7. 注意事项
- 生产环境安全:监控页面暴露了连接池的敏感信息,线上部署时一定要严格限制访问——比如只允许内网 IP 访问,或者加一层反向袋里的身份验证,千万别让任何人随便进。
- 性能影响:Druid 的监控确实强大,但在超高并发场景下,采集这些数据本身也会消耗一些资源。建议根据实际负载适当调整监控级别,别因为监控拖累了业务。
- 版本更新:定期检查 Druid 的新版本,及时修复已知漏洞和 bug,保持系统稳定和安全。技术债欠得越早还越轻松。
8. 总结
到这里,一个整合了 Druid 连接池并开启监控功能的 Spring Boot 应用就搭建完成了。这套组合拳既提升了数据库访问效率,又给了开发人员一个直观的监控工具,无论是日常调优还是线上排障,都顺手了许多。希望这篇文章能帮你快速上手,在实际项目中用起来。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















