Druid是一個關系型數據庫連接池,是阿里巴巴的一個開源項目,地址:https://github.com/alibaba/druid 。Druid不但提供連接池的功能,還提供監控功能,可以實時查看數據庫連接池和SQL查詢的工作情況。
本例使用Spring Boot 1.5 , mybatis
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.21.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
不同版本的Spring Boot和MyBatis版本對應可查看官方文檔:http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/。
Spring Boot 1.5版本
Maven pom依賴
Druid為Spring Boot項目提供了對應的starter:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.6</version>
</dependency>
.\resources\application.yml
server:
context-path: /web
spring:
datasource:
druid:
# 數據庫訪問配置, 使用druid數據源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/YOUR_DB_NAME?useUnicode=true&characterEncoding=utf-8
username: root
password: root
# 連接池配置
initial-size: 5
min-idle: 5
max-active: 20
# 連接等待超時時間
max-wait: 30000
# 配置檢測可以關閉的空閑連接間隔時間
time-between-eviction-runs-millis: 60000
# 配置連接在池中的最小生存時間
min-evictable-idle-time-millis: 300000
validation-query: select '1' from dual
test-while-idle: true
test-on-borrow: false
test-on-return: false
# 打開PSCache,並且指定每個連接上PSCache的大小
pool-prepared-statements: true
max-open-prepared-statements: 20
max-pool-prepared-statement-per-connection-size: 20
# 配置監控統計攔截的filters, 去掉后監控界面sql無法統計, 'wall'用於防火牆
filters: stat,wall
# Spring監控AOP切入點,如x.y.z.service.*,配置多個英文逗號分隔
aop-patterns: com.springboot.servie.*
# WebStatFilter配置
web-stat-filter:
enabled: true
# 添加過濾規則
url-pattern: /*
# 忽略過濾的格式
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
# StatViewServlet配置
stat-view-servlet:
enabled: true
# 訪問路徑為/druid時,跳轉到StatViewServlet
url-pattern: /druid/*
# 是否能夠重置數據
reset-enable: false
# 需要賬號密碼才能訪問控制台
login-username: druid
login-password: druid123
# IP白名單
# allow: 127.0.0.1
# IP黑名單(共同存在時,deny優先於allow)
# deny: 192.168.1.218
# 配置StatFilter
filter:
stat:
log-slow-sql: true