SpringBoot整合Druid连接池
Druid连接池简介
Druid连接池是阿里巴巴旗下一款开源的数据库连接池产品,结合了C3P0,DBCP等DB池的优点,同时也加入了日志监控功能。
相关文档地址:
Github:https://github.com/alibaba/druid
maven仓库:
https://mvnrepository.com/artifact/com.alibaba/druid
Druid连接池相关配置参数
1)Max-active:指的是连接池里允许的最大活跃连接数,这个值根据应用实际情况调整。
2)Min-idle:关掉多余连接,保留有效连接,节省数据库的资源,这个值根据应用实际情况调整。
3)Max-wait,指应用线程等待连接的超时。可以配几秒范围,根据业务应用实际情况进行判定。
4)Validation-query,指的是连接池探测当前连接是否是健康的SQL语句。如果是较新的JDBC,不会发SQL语句,而是发Ping命令。
5)Validation-query-timeout,指的就是探测超时的时间。
6)Test-on-borrow指连接从连接池里取出时,连接池是否需要对连接进行健康探测。建议关闭False。
7)Test-on-return,建议关闭False。
8)Test-while-idle,指的是控制当连接处于空闲状态时,是否需检测连接的健康状态。建议打开True。
9)Time-between-eviction-runs-millis指的是触发空闲连接健康探测阈值,需要跟上面的Test-while结合起来。
10)Remove-abandoned,泄露连接强制回收,默认是False关闭。
11)Remove-abandoned-timeout,指的是强制回收的触发时间阈值。配置时间不要太短,因为业务长时间使用连接,所以超时时间要比业务实际合理时间要高。配置参数单位是“秒”。
整合流程
- 进行依赖的导入
-
<!-- https://mvnrepository.com/artifact/com.alibaba/druid druid数据源, --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.8</version> </dependency> <!-- https://mvnrepository.com/artifact/log4j/log4j 根据配置内容进行监控日志jar包 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
- 配置application.yml文件
-
spring: datasource: username: xx # 用户名 password: xx # 密码 driver-class-name: com.mysql.cj.jdbc.Driver #加载驱动 # 连接数据库 url: jdbc:mysql://localhost:3306/BlogS?useSSL=true&useUnicode=true&characterEncoding=utf-8 type: com.alibaba.druid.pool.DruidDataSource # 切换成Druiid数据源 druid: # SpringBoot默认是不注入这些的,需要自己绑定 # druid数据源专有配置 initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true filters: stat,wall,log4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionoProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 stat-view-servlet: allow: 127.0.0.1 # 只允许本机访问 login-username: admin # 配置Druid后台用户名 login-password: 123456 # 配置Druid后台密码 url-pattern: /druid/* # 配置访问路径 enabled: true reset-enable: true
- 测试
- 输入用户名,密码进行登录
- 数据源信息
- 当我们对数据进行CRUD等相关数据库操作时,Druid数据源(与其他数据源不同之处,Druid有强大的日志监控功能)将对执行操作进行监控。
- 对后台数据进行一个访问
此时,我们所配置的Druid中将监控SQL的执行:
- 对后台数据进行一个访问
至此,上述仅是一个简单的Druid连接池案例,但Druid的功能肯定远不止如此,还要继续深入学习。