Druid概述
Druid是阿里巴巴開源的一款非常優(yōu)秀的數(shù)據(jù)庫連接池。在Java應(yīng)用程序開發(fā)中,常用的連接池還有DBCP、C3P0、Proxool等。
SpringBoot2.X 版本開始默認的是HikariCP(號稱性能最好的數(shù)據(jù)庫連接池),Druid性能好而且監(jiān)控也比較方便。
感興趣的同學(xué)可以讀一下:Druid連接池介紹
接下來我們就來講解如何集成Druid數(shù)據(jù)源
集成Druid
- 首先是在pom.xml中添加依賴
<!--阿里數(shù)據(jù)庫連接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- Mysql驅(qū)動包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- mybatis框架 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.boot.version}</version>
</dependency>
-
接著在資源根目錄下添加一個配置文件,命名為application-druid.yml
druid配置文件
內(nèi)容如下:
spring:
## 數(shù)據(jù)庫配置
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=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: root
# 初始連接數(shù)
initialSize: 5
# 最小連接池數(shù)量
minIdle: 10
# 最大連接池數(shù)量
maxActive: 20
# 配置獲取連接等待超時的時間
maxWait: 60000
# 配置間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一個連接在池中最小生存的時間,單位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一個連接在池中最大生存的時間,單位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置檢測連接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 設(shè)置白名單,不填則允許所有訪問
allow:
url-pattern: /druid/*
# 控制臺管理用戶名和密碼
login-username: root
login-password: root
filter:
stat:
enabled: true
# 慢SQL記錄
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
參數(shù)說明:
- spring.datasource.druid.max-active 最大連接數(shù)
- spring.datasource.druid.initial-size 初始化大小
- spring.datasource.druid.min-idle 最小連接數(shù)
- spring.datasource.druid.max-wait 獲取連接等待超時時間
- spring.datasource.druid.time-between-eviction-runs-millis 間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
- spring.datasource.druid.min-evictable-idle-time-millis 一個連接在池中最小生存的時間,單位是毫秒
- spring.datasource.druid.filters=config,stat,wall,log4j 配置監(jiān)控統(tǒng)計攔截的filters,去掉后監(jiān)控界面SQL無法進行統(tǒng)計,’wall’用于防火墻
這樣就可以最簡單的啟動了

start
有人可能會遇到如下的錯誤信息:

error
缺少了類似mybatis、spring-data-jpa這類的數(shù)據(jù)包,Druid需要依賴這些才能啟動
在瀏覽器輸入:http://localhost:8080/druid/login.html,出現(xiàn)Druid監(jiān)控登錄框,用戶名和密碼為配置文件里的內(nèi)容

LOGIN

index
在這里可以查看各類數(shù)據(jù)的監(jiān)控信息,幫助系統(tǒng)的優(yōu)化。
總結(jié)
這里只是做了最簡單的集成,在后續(xù)的項目中使用的話會另起一篇深入探討。
