SpringBoot使用MySQL数据库,配置alibaba druid数据库连接池
前提: 基于maven构建的Spring Boot2.6.13+ MySQL8.0项目,以下配置仅供参考。
1. 在pom文件中引入druid的依赖jar包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.23</version>
</dependency>
2. application.yml属性文件配置
spring:
datasource:
druid:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://xxx:3306/xxx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: xxx
password: xxx
############### 连接池配置 ###############
initialSize: 5
maxActive: 20
minIdle: 5
# 配置获取连接等待超时的时间
maxWait: 60000
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
poolPreparedStatements: true
maxOpenPreparedStatements: 20
# 如果initialSize数量较多时,打开会加快应用启动时间
asyncInit: true
# 测试连接是否断开,自动测试连接查询
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
validationQuery: select 'x'
############### 监控配置 ###############
# WebStatFilter配置
webStatFilter:
enabled: true
# url需要配置druid的路径,否则会拦截系统的请求
urlPattern: /druid/*
#exclusions: '*.js,*.css, /druid/*' # DruidWebStatFilterConfiguration已默认配置
# StatViewServlet配置, StatViewServlet是一个标准的javax.servlet.http.HttpServlet, 内置监控页面的首页是/druid/index.html
# 访问地址 http://ip:端口号/druid/index.html
statViewServlet:
enabled: true
# url需要配置druid的路径,否则会拦截系统的请求
urlPattern: /druid/*
loginUsername: xxx
loginPassword: xxx
# StatViewServlet展示出来的监控信息比较敏感,是系统运行的内部情况,如果你需要做访问控制,可以配置allow和deny这两个参数。
# deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。
# DruidStatViewServletConfiguration: 默认为127.0.0.1, ip配置格式: ip1,ip2... 或 ip1/子网前缀
allow: 127.0.0.1
#deny:
resetEnable: true #允许清空统计数据
# filters配置: 配置监控统计拦截的filters, Druid Spring Boot Starter 默认禁用 StatFilter,你也可以将其 enabled 设置为 true 来启用它。
# StatFilter属性slowSqlMillis用来配置SQL慢的标准,执行时间超过slowSqlMillis的就是慢。slowSqlMillis的缺省值为3000,也就是3秒。
filter:
# Druid的监控统计功能
stat:
enabled: true
db-type: mysql
# 记录慢sql
log-slow-sql: true
slow-sql-millis: 5000
slf4j:
enabled: true
# 防御SQL注入攻击,DruidFilterConfiguration初始化时,如果没有配置config,则会new WallConfig(),
# wallFilter初始化时,如果config为空,会根据db-type加载默认config配置,mysql默认配置在 druid-1.2.23.jar的META-INF/druid/wall/mysql目录下,
# 如果config不为空,则初始化MySqlWallProvider
wall:
enabled: true
db-type: mysql