Spring Boot 集成 Druid 连接池及监控配置详解
Spring Boot 是当前 Java 开发中的热门框架,而在数据库连接池的选择上,Druid 因其性能和功能强大也备受青睐。在这篇文章中,我们将深入探讨如何在 Spring Boot 项目中集成 Druid 连接池,并配置相关的监控功能。整个过程将基于一个简单的用户管理系统来演示。
项目搭建
首先,搭建一个 Spring Boot 项目。你可以使用 Spring Initializr 快速生成项目,选择所需的依赖项,包括 Spring Web、Spring Data JPA、MySQL 驱动等。
配置 pom.xml
在项目的 pom.xml
文件中添加 Druid 的依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
配置 application.yml
接下来,在 src/main/resources
目录下创建或编辑 application.yml
文件,添加 Druid 数据源的配置:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/inner-test?characterEncoding=UTF-8&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
username: root
password: 123456
type: com.alibaba.druid.pool.DruidDataSource
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
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filters: stat,wall,log4j
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
这些配置项涵盖了连接池的初始化大小、最小空闲连接数、最大活跃连接数、最大等待时间等参数,以及 Druid 提供的监控、SQL 过滤等功能。
配置 Druid 监控
Druid 提供了强大的监控功能,我们可以通过配置管理后台来访问这些监控数据。继续在 application.yml
文件中添加以下内容:
spring:
datasource:
druid:
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: admin
login-password: 123456
reset-enable: false
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
以上配置启用了 Druid 的监控 Servlet 和 Web 统计过滤器,并设置了监控页面的访问路径和登录凭证,登录用户和密码分别是admin 123456。现在,你可以通过访问 http://localhost:8080/druid
来查看 Druid 提供的各种监控信息,包括 SQL 监控、数据源监控等。如下图,访问该接口时会提示登录,
登录后的结果如下,可以查看脚本执行情况等。
运行和测试
至此,就已经完成了Springboot集成 Druid 连接池和监控功能。你可以启动 Spring Boot 应用,访问 http://localhost:8080/druid
查看 Druid 的监控页面,监控数据库连接池的状态和 SQL 执行情况。
通过这种方式,我们不仅能够高效地管理数据库连接,还能通过直观的监控页面了解系统的运行状态,从而更好地优化和维护我们的应用。希望这篇文章能为你在项目中集成 Druid 连接池提供一些帮助和参考。