Springboot2迁移:从Hikari到Druid连接池详解
需积分: 0 124 浏览量
更新于2024-08-04
收藏 171KB DOCX 举报
在Spring Boot 2中,默认情况下,应用使用的数据源连接池是HikariCP,这是Spring Boot内置的一种高效轻量级的数据库连接池。然而,如果需要切换到更强大的Druid连接池,可以按照以下步骤进行操作。
一、默认连接池 - HikariCP
HikariCP是Apache License 2.0下的开源项目,它提供了一个快速、低内存占用的连接池,适用于现代Web应用。在Spring Boot中,可以通过`user-center.yml`配置文件中的`com.zaxxer.hikari.HikariConfig`类来设置连接池参数,这个类包含了诸如初始化大小(initialSize)、最小空闲连接(minIdle)、最大活动连接(maxActive)等配置。在实际项目中,只需查阅源码或官方文档了解所有可用参数。
二、切换为Druid连接池
1. 添加Druid依赖
在项目的`pom.xml`文件中,添加Druid的Spring Boot Starter依赖,确保只对需要数据库连接的服务添加此依赖:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
```
这样,Druid的API和配置文件就会被自动集成到你的项目中。
2. 修改配置文件
需要替换或新增Druid的配置,比如驱动类名、连接池参数等。常见的配置项包括:
- `driver-class-name`: 数据库驱动的全限定名,如`com.mysql.jdbc.Driver`
- `initialSize`: 连接池的初始大小
- `minIdle`: 最小空闲连接数
- `maxActive`: 最大活动连接数
- `maxWait`: 当连接池耗尽时,获取连接的最大等待时间
- `timeBetweenEvictionRunsMillis`: 检查并清理空闲连接的时间间隔
- `minEvictableIdleTimeMillis`: 连接在空闲状态下的最长时间,超过此时间将被移除
- `validationQuery`: 验证连接是否有效的SQL语句
- `testWhileIdle`: 是否在空闲时检查连接
- `testOnBorrow`: 借取连接时是否验证连接
- `testOnReturn`: 归还连接时是否验证连接
- `poolPreparedStatements`: 是否启用预编译语句
- `maxPoolPreparedStatementPerConnectionSize`: 每个连接的最大预编译语句数量
- `filters`: 配置Druid的监控过滤器,如`stat`(统计信息)和`wall`(防止SQL注入)
将这些配置项添加到`druid:`命名空间下,确保与YAML文件的层次结构相匹配。例如:
```yaml
druid:
driver-class-name: com.mysql.jdbc.Driver
initialSize: 5
minIdle: 5
maxActive: 20
# 更多配置...
```
在搜索配置文件时,查找类似上述关键字的行,替换或新增对应参数。
切换连接池后,Druid的监控功能如慢查询、SQL性能统计等可以提供更丰富的数据库管理信息,这对于性能优化和问题排查非常有帮助。务必根据项目需求调整这些配置,以达到最佳性能和稳定性。
2010-05-09 上传
397 浏览量
377 浏览量
2008-05-10 上传
2022-09-23 上传
2021-10-01 上传
2013-12-13 上传
2023-05-22 上传
我要WhatYouNeed
- 粉丝: 48
- 资源: 287
最新资源
- ZomatoApp
- rc:配置文件(请参阅https
- ncomatlab代码-NCO_ERD:NCO和Panoply的NetCDF代码
- 行业文档-设计装置-一种利用精雕复合技术制作的个性化水印纸.zip
- react-poc:与next.js,graphql和redux进行React
- GraphicsEditor:使用Java的图形编辑器软件
- pynq_quiz
- ncomatlab代码-NOHRSC_SNODAS:用于检索和处理NOHRSCSNODAS每日二进制文件的脚本
- santa-maria:计划与朋友制表比赛
- 【WordPress插件】2022年最新版完整功能demo+插件v1.8.5.zip
- lunchly
- 狗游戏
- matrix-free-dealii-precice:用于耦合流固耦合的无基质高性能固体求解器
- 基于 React + Koa + MySQL + JWT + Socket.io 的即时通讯聊天室。.zip
- gfdm-lib-matlab:适用于MATLAB的通用频分复用(GFDM)库
- reports-generator-freelancer:Desafio domódulo2训练营点燃Trilha Elixir