SpringBoot整合Druid并开启监控过程

 更新时间:2026年06月04日 09:44:04   作者:二妹的三爷  
Druid高性能数据库连接池与SpringBoot结合使用,显著提升数据访问性能,通过内置监控页面实时查看连接状态、SQL执行情况等关键信息

Druid 是一个由阿里巴巴开源的高性能数据库连接池,它不仅提供了高效的连接管理功能,还自带了强大的监控和统计特性。

将 Druid 与 Spring Boot 结合使用,可以显著提高应用程序的数据访问性能,并且通过内置的监控页面,开发者能够实时监控数据库连接的状态、SQL 执行情况等重要信息。

1. 引言

随着互联网应用的快速发展,对数据库连接池的要求也越来越高。

传统的连接池可能无法满足现代应用对于高性能和高可用性的需求。而 Druid 凭借其优秀的性能优化、详细的监控数据以及灵活的配置选项,成为了许多开发者的首选。

接下来,我们将一步步展示如何在 Spring Boot 中引入 Druid,并启用它的监控功能。

2. 添加依赖

首先,在你的 pom.xml 文件中添加 Druid 的 Maven 依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-3-starter</artifactId>
    <version>1.2.24</version>
</dependency>

如果你使用的是 Gradle 构建工具,则可以在 build.gradle 文件中添加如下内容:

implementation 'com.alibaba:druid-spring-boot-3-starter:1.2.24'

3. 配置数据源

接下来,在 application.properties 或 application.yml 文件中配置 Druid 数据源的相关参数。

这里以 .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

上述配置项包括了连接池的基本参数(如初始大小、最小空闲连接数、最大活动连接数等),同时也启用了 Druid 的 Web 统计过滤器和统计视图 Servlet,并设置了登录用户名和密码用于访问监控页面。

4. 开启监控功能

为了更好地管理和监控 Druid 连接池的工作状态,我们需要开启 Druid 提供的监控功能。

这可以通过配置文件中的几个关键属性来实现:

  • WebStatFilter:用于收集 Web 应用程序的 SQL 慢查询日志。
  • StatViewServlet:提供了一个可视化的监控页面,可以查看连接池的各项指标。

确保在 application.properties 或 application.yml 中启用了这两个组件:

# 启用 WebStatFilter 和 StatViewServlet
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.stat-view-servlet.enabled=true

此外,还可以进一步自定义监控页面的安全策略,比如允许或限制特定 IP 地址访问、设置更多的登录凭证等。

5. 自定义 Druid 配置(可选)

如果默认配置不能满足你的需求,你可以创建一个自定义的 Druid 配置类来覆盖默认设置。

例如:

@Configuration
public class DruidConfig {

    @ConfigurationProperties(prefix = "spring.datasource.druid")
    @Bean
    public DruidDataSource druidDataSource() {
        return new DruidDataSource();
    }

    // 如果需要,可以在这里添加更多配置,如过滤器、拦截器等
    @Bean
    public ServletRegistrationBean<StatViewServlet> statViewServlet() {
        ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
        Map<String, String> 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<Filter> webStatFilter() {
        FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<Filter>();
        bean.setFilter(new WebStatFilter());
        Map<String, String> params = new HashMap<>();
        params.put("exclusions", "*.js,*.css,/druid/*");
        bean.setUrlPatterns(Arrays.asList("/*"));
        bean.setInitParameters(params);
        return bean;
    }
}

6. 访问监控页面

完成上述配置后,启动 Spring Boot 应用程序,然后打开浏览器并访问以下 URL 来查看 Druid 的监控页面:

http://localhost:8080/druid/

使用之前设置的用户名和密码登录后,你将看到一个包含详细连接池信息和 SQL 查询统计的界面。通过这个页面,你可以轻松地监控数据库连接的状态、分析 SQL 性能瓶颈等问题。

7. 注意事项

  • 生产环境安全:在生产环境中部署时,请务必加强对监控页面的访问控制,避免敏感信息泄露。
  • 性能影响:虽然 Druid 的监控功能非常有用,但在高并发场景下可能会对系统性能产生一定影响。因此,在实际应用中应权衡利弊,合理配置监控级别。
  • 更新维护:定期检查 Druid 版本更新,及时修复已知漏洞和问题,保持系统的稳定性和安全性。

8. 总结

通过以上步骤,我们成功地在 Spring Boot 应用中集成了 Druid 数据库连接池,并开启了其监控功能。这不仅提高了数据库访问的效率,还为开发者提供了宝贵的调试和优化工具。

这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java 如何利用缓冲流读写文件

    Java 如何利用缓冲流读写文件

    这篇文章主要介绍了Java 如何利用缓冲流读写文件的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • MyBatis如何进行双重foreach循环

    MyBatis如何进行双重foreach循环

    这篇文章主要介绍了MyBatis如何进行双重foreach循环,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Spring Data Neo4j Cypher查询使用

    Spring Data Neo4j Cypher查询使用

    本文介绍了Spring Data Neo4j Cypher查询使用的几种方法,包括使用Repository接口、动态查询、服务层组合、外部查询文件和图形化查询构建器, 感兴趣的可以了解一下
    2024-11-11
  • IDEA关闭SpringBoot程序后仍然占用端口的排查与解决方法

    IDEA关闭SpringBoot程序后仍然占用端口的排查与解决方法

    在使用 IntelliJ IDEA 开发 Spring Boot 应用时,有时即使关闭了应用,程序仍然占用端口,这会导致重新启动应用时出现端口被占用的错误,所以本文给大家介绍了IDEA关闭SpringBoot程序后仍然占用端口的排查与解决方法,需要的朋友可以参考下
    2025-02-02
  • Maven中错误使用parent.relativePath导致构建失败问题

    Maven中错误使用parent.relativePath导致构建失败问题

    这篇文章主要介绍了Maven中错误使用parent.relativePath导致构建失败问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 从零开始手写JDBC连接数据库的详细指南

    从零开始手写JDBC连接数据库的详细指南

    在 Java 开发中,数据库是存储和管理数据的核心组件,JDBC是 Java 程序与数据库交互的标准 API,本文将带大家手写一个完整的 JDBC 连接数据库的示例,希望对大家有所帮助
    2025-07-07
  • Kosaraju算法详解

    Kosaraju算法详解

    这篇文章主要为大家详细介绍了Kosaraju算法,Kosaraju算法可以计算出一个有向图的强连通分量,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • java SpringSecurity使用详解

    java SpringSecurity使用详解

    这篇文章主要介绍了java中Spring Security的实例详解的相关资料,spring security是一个多方面的安全认证框架,提供了基于JavaEE规范的完整的安全认证解决方案,需要的朋友可以参考下
    2021-08-08
  • SpringBoot对PDF进行模板内容填充与电子签名合并详解

    SpringBoot对PDF进行模板内容填充与电子签名合并详解

    这篇文章主要为大家详细介绍了SpringBoot对PDF进行模板内容填充与电子签名合并的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以参考下
    2023-12-12
  • Java自动化设置PowerPoint幻灯片背景颜色和背景图片

    Java自动化设置PowerPoint幻灯片背景颜色和背景图片

    在日常工作中,PowerPoint 演示文稿是不可或缺的工具,本文将为你揭示如何通过Java,高效、专业地设置PowerPoint幻灯片的背景颜色和背景图片,有需要的可以了解下
    2025-12-12

最新评论