Springboot2迁移:从Hikari到Druid连接池详解

需积分: 0 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性能统计等可以提供更丰富的数据库管理信息,这对于性能优化和问题排查非常有帮助。务必根据项目需求调整这些配置,以达到最佳性能和稳定性。