Druid连接池最初就是为监控系统采集jdbc运行信息而生的,它内置了StatFilter 功能,能采集非常完备的连接池执行信息Druid连接池内置了能和Spring/Servlet关联监控的实现,使得监控Web应用特别方便Druid连接池内置了一个监控页面,提供了非常完备的监控信息,可以快速诊断系统的瓶颈。
生产环境数据库密码一般要进行加密,如何在druid中加密呢?
java -cp druid-1.2.18.jar com.alibaba.druid.filter.config.ConfigTools 123456
privateKey:MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAn5aXCK010qudvbqKBj8spVmV65eY0zsOh1PoydjKFnNdhMZPNXMzjab/ztmHGX1jxnQSIXWJ15RO8Ru/dE9v+QIDAQABAkEAg6zC7ZvM/wgu3O7fF4xkkAG822h35kGiGTK4rmK7S42S3LyubG/wZaGli1TlL1eQy2xDlTc/riNeDwuLixLZKQIhANIpIxuCXxhKZK961+OKWOSIGgML5+RgJzfct23vXL+zAiEAwmWcKU6pzyDlypv5dKarEoCnnFZ8AJW4a7AysPMQm6MCIBXNfL3q3ZC4jw+BcApEHQrAb+pm/sy7iPYLqN/32ChvAiBtBrfyot+x/21hmODrf55qniVjFU4utcnc+9EyVOB3qQIgOLWFiC0Wz2wN1WLdb01A9TUy9eka4VrfepvwrT7bIOo=
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ+WlwitNdKrnb26igY/LKVZleuXmNM7DodT6MnYyhZzXYTGTzVzM42m/87Zhxl9Y8Z0EiF1ideUTvEbv3RPb/kCAwEAAQ==
password:nUOOvBP8Y7khxc+qM3jMs1+Di+vDmE8XpP7ydZS4fb1pbnZPLRNIdZvs2tMD0bKk6GwSd7oQmsjWeWWO81A2aA==
将password和publicKey填写到配置文件
spring:
application:
name: springboot3-druid
datasource:
type: com.alibaba.druid.pool.DruidDataSource
# druid 连接池管理
druid:
# 初始化连接池大小
initial-size: 5
# 连接池最大连接数
max-active: 20
# 每个连接上PSCache的最大值
# 如果大于0,pool-prepared-statements自动开启
max-pool-prepared-statement-per-connection-size: -1
# 连接时最大等待时间(单位:毫秒)
max-wait: 60000
# 保持空闲连接不被关闭的最小生存时间(单位:毫秒)
min-evictable-idle-time-millis: 300000
# 连接池最小空闲数
min-idle: 5
# 是否开启PSCache,即是否缓存preparedStatement(提升写入、查询效率)
# 建议在支持游标的数据库开启,例如:Oracle
pool-prepared-statements: false
# 检测获取连接时的有效性
# 开启后会影响性能
test-on-borrow: false
# 检测归还连接时的有效性
# 开启后会影响性能
test-on-return: false
# 检测空闲连接
# 不影响性能,建议开启
test-while-idle: true
# 检测关闭空闲连接的时间间隔(单位:毫秒)
time-between-eviction-runs-millis: 60000
# 检测连接有效的SQL
# 为空则test-while-idle、test-on-borrow、test-on-return配置失效
validation-query: SELECT 1
# 检测连接是否有效的超时时间
validation-query-timeout: 1
stat-view-servlet:
# 访问白名单
allow: 127.0.0.1
# 配置统计页面
enabled: true
# 访问密码
login-password: 123456
# 访问用户名
login-username: root
# 允许重置监控数据
reset-enable: true
web-stat-filter:
# 配置统计页面过滤
enabled: true
# 排除路径
exclusions: .js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
# 开启session统计
session-stat-enable: true
# session统计的最大个数
session-stat-max-count: 100
# 过滤路径
url-pattern: /*
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/abc?characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: Kfof8eP1CfroQSlOnXfU46QYuZmAUJHIu/CNjeTr2GNBVfg6rpWdKv7ei/h01l7+B8jkUauZhkTVfSU551V+0w==
db-type: mysql
connect-properties:
config.decrypt: true
config.decrypt.key: ${publicKey}
mybatis-plus:
global-config:
db-config:
# 主键类型:自增
id-type: auto
# mapper xml文件路径
mapper-locations: classpath:mapper/*.xml
publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMnmWWsTSIz+/RRC6hFZKoecRoUwJb2xcVSoZQRgj0Qfd9GJEtXr33rFxbNWuMCzi9A5SDKlmA6w5La3nLkzQKUCAwEAAQ==
# Logger Config
logging:
level:
com.hexadecimal: debug
注意,还需要配置connect-properties,如上文