社区编辑申请
注册/登录
SpringBoot整合Druid连接池并打开监控页
运维 数据库运维
项目整合完MybatisPlus、Mysql之后,接下来就该接入一个数据库连接池了。这项技术能明显提高对数据库操作的性能。

项目整合完MybatisPlus、Mysql之后,接下来就该接入一个数据库连接池了。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

框架选择上我选择了Druid(德鲁伊)连接池,性能不错,功能全面。

首先在pom中引入

<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>

然后添加配置

spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: demo
password: 123456
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: druid
login-password: druid
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true

在接口中写一个查询

List<User> userList = userMapper.selectList(null);

userList.forEach(System.out::println);

启动项目后打开

http://localhost:9999/druid/login.html,登录的账号密码使用配置文件中指定的账号密码

登录

执行几次数据库请求,查看SQL监控

SQL监控

一切表现正常,集成完成。

责任编辑:姜华 来源: 今日头条

编辑推荐

Oracle免费的便捷Web应用开发框架二则从携程系统瘫痪,看国内企业数据管理乱象数据库update时这样干,你就悲剧了影响数据检索效率的几个因素携程事件反思:是该重视数据库灾备了!
我收藏的内容
点赞
收藏

51CTO技术栈公众号