云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

阿里巴巴druid-spring-boot-starter配置数据源和监控

jxf315 2025-01-15 14:24:38 教程文章 27 ℃

Spring Boot 2.x 默认使用 HikariCP 作为数据源,但在实际开发工作中大家都还是比较喜欢Druid。它是目前国内使用范围最广的数据源产品。

Druid介绍

Druid是阿里巴巴推出的一款开源的高性能数据源产品,Druid 支持所有 JDBC 兼容的数据库。Druid 不仅结合了 C3P0、DBCP 和 PROXOOL 等数据源产品的优点,同时还加入了强大的监控功能。通过 Druid 的监控功能,可以实时观察数据库连接池和 SQL 的运行情况,帮助用户及时排查出系统中存在的问题。

Druid 不是 Spring Boot 内部提供的技术,它属于第三方技术,我们可以通过以下两种方式进行整合:

  • 自定义整合 Druid
  • 通过 starter 整合 Druid

自定义整合 Druid

自定义整合 Druid 是指:根据 Druid 官方文档和自身的需求,通过手动创建 Druid 数据源的方式,将 Druid 整合到 Spring Boot 中。由于Spring Boot 官方没有对Druid 数据源提供自动配置支持,这种自定义整合Druid很是繁琐。为了解决这一问题,于是阿里官方提供了 Druid Spring Boot Starter,它可以帮助我们在 Spring Boot 项目中,轻松地整合 Druid 的数据库连接池和监控功能。

通过 druid-spring-boot-starter 整合 Druid

在pom中引入 Druid Spring Boot Starter 依赖

引入依赖有可能出现下面这种情况,如下图:

报错信息意思是Maven中央仓库没有这个依赖,我们需要配置阿里巴巴的仓库镜像才能下载,具体的配置请移步之前的文章Maven web项目创建和Maven依赖仓库看看怎么配置的。

配置属性

Druid Spring Boot Starter 已经将 Druid 数据源中的所有模块都进行默认配置,我们也可以通过 Spring Boot 配置文件(application.properties/yml)来修改 Druid 各个模块的配置,否则将使用默认配置。

在 Spring Boot 配置文件中配置以下内容:

  • JDBC 通用配置
  • Druid 数据源连接池配置
  • Druid 监控配置
  • Druid 内置 Filter 配置

JDBC 通用配置

我们可以在 Spring Boot 的配置文件中对 JDBC 进行通用配置。如下图:

Druid 数据源连接池配置

我们还可以在 Spring Boot 的配置文件中对 Druid 数据源连接池进行配置。如下图:

Druid 监控配置

我们还可以在 Spring Boot 的配置文件中对 Druid 内置监控页面、Web-JDBC 关联监控和 Spring 监控等功能进行配置。如下图:

Druid 内置 Filter 配置

Druid Spring Boot Starter 对以下 Druid 内置 Filter,都提供了默认配置:

  • StatFilter
  • WallFilter
  • ConfigFilter
  • EncodingConvertFilter
  • Slf4jLogFilter
  • Log4jFilter
  • Log4j2Filter
  • CommonsLogFilter

我们可以通过 spring.datasource.druid.filters=stat,wall ... 的方式来启用相应的内置 Filter,不过这些 Filter 使用的都是默认配置。如果默认配置不能满足我们的需求,我们还可以在配置文件使用 spring.datasource.druid.filter.* 对这些 Filter 进行配置。如下图:

验证效果

运行项目,在浏览器输入http://localhost:8080/druid/,出现如下页面:

输入配置的用户密码登录,页面如下图所示:

在这个页面我们可以看到数据源,sql监控、sql防火墙、web应用、session监控、URI监控、spring监控、json api等信息。可以实时观察数据库连接池和 SQL 的运行情况,帮助我们及时排查出系统中存在的问题。

最近发表
标签列表