网站首页 > 教程文章 正文
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 的运行情况,帮助我们及时排查出系统中存在的问题。
猜你喜欢
- 2025-01-15 挂载阿里云盘为本地磁盘
- 2025-01-15 CloudDrive:将阿里云盘、天翼云盘等一键挂载为本地硬盘
- 2025-01-15 python打包exe,各种bug处理,以及解决方案
- 2025-01-15 云原生网关higress的搭建
- 2025-01-15 Java连接Zookeeper以及书写简单增删改查的方法
- 2025-01-15 若依框架改造,阿里docker部署
- 2025-01-15 我早就看现在的工作流不爽了!- 前端使用 Jenkins
- 2025-01-15 Centos7配置阿里云yum源
- 2025-01-15 Higress:阿里巴巴重磅出品,下一代云原生网关
- 2025-01-15 1688会员不得向第三方租账号 情节严重扣8分
- 05-11阿里开源MySQL中间件Canal快速入门
- 05-11MyBatis插件开发实战:手写一个分页插件
- 05-11Flask数据库——SQLAlchemy
- 05-11MySQL 到 Hazelcast Cloud 实时数据同步实操分享
- 05-11sqlmap 详解
- 05-11一篇文章让你学会Elasticsearch中的查询
- 05-11Mysql性能优化这5点你知道吗?简单却容易被初学者忽略!
- 05-11Spring Boot 实现 MySQL 读写分离技术
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)