SpringBoot整合Druid連接池并打開監控頁
作者:CTRL+CV程序猴
項目整合完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監控
一切表現正常,集成完成。
責任編輯:姜華
來源:
今日頭條