前言
- 在当前复杂网络环境下,安全性成为各企业重点关注项,而SQL注入就是一种常用的攻击方式。对于一般企业或个人来说,开发一套安全防止SQL注入的系统并不简单,如果购买数据库防火墙无疑又增加了成本,很多企业或个人也负担不起。开源数据库连接池Druid的出现为大家提供了一种廉价的解决方案,虽然不是最快的,但是它经历阿里巴巴电商级应用的“折磨”,值的依赖,个人比较推荐
- Druid的优点很明显,它的可视化界面可以监控Sql语句和URI执行情况在开发中真的很需要。**
1. 在你的spring boot的项目中pom.xml添加如下软件:
<!--如果mysql driver 版本较低,需要降低 druid-spring-boot-starter 的版本,如 1.1.10-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.29</version>
</dependency>
2.
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
# druid 数据库连接池配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 初始化时建立物理连接的个数
spring.datasource.druid.initial-size=5
# 最小连接池数量
spring.datasource.druid.min-idle=5
# 最大连接池数量
spring.datasource.druid.max-active=20
# 获取连接时最大等待时间,单位毫秒
spring.datasource.druid.max-wait=60000
# 配置间隔多久才执行一次检测,检测需要关闭的空闲连接,单位毫秒
spring.datasource.dbcp2.time-between-eviction-runs-millis=60000
# 配置一个连接在池中最小生存的时间,单位毫秒
spring.datasource.druid.min-evictable-idle-time-millis=300000
# 用来检测连接是否有效的sql
spring.datasource.druid.validation-query=SELECT 1
# 申请连接的时候检测,如果空闲时间大于 timeBetweenEvicationRunsMillis 执行validationQuantity
spring.datasource.druid.test-while-idle=true
# 申请连接时执行 validationQuantity 检测连接是否有效,如果为true会降低性能
spring.datasource.druid.test-on-borrow=false
# 归还连接时执行 validationQuantity 检测连接是否有效,如果为true会降低性能
spring.datasource.druid.test-on-return=false
# 打开 PSCache,并且指定每个连接上的 PSCache 的大小
spring.datasource.druid.pool-prepared-statements=true
# 要启用 PSCache 必须配置大于0,当大于0时,
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
# 配置监控统计连接到filter,去掉后监控界面sql无法统计,wall 用于防火墙
spring.datasource.druid.filters=stat,wall,slf4j
spring.datasource.druid.connection-properties=druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
# 配置 druidstatfilter ,用于采集web-jdbc关联监控的数据
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
# 排除一些不必要的url过滤
spring.datasource.druid.web-stat-filter.exclusions="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
# ip白名单(没有配置或者为空,则只能在本地访问)
spring.datasource.druid.stat-view-servlet.allow=192.168.0.104,127.0.0.1
# ip黑名单(存在共同ip时,deny优先与allow)
spring.datasource.druid.stat-view-servlet.deny=
# 禁用HTML页面上的 restet all 功能
spring.datasource.druid.stat-view-servlet.reset-enable=false
# 可视化页面,登录名称
spring.datasource.druid.stat-view-servlet.login-username=admin
# 可视化页面,登录密码
spring.datasource.druid.stat-view-servlet.login-password=admin123
3.登录url为:http://127.0.0.1:8081/ds/druid/index.html
注意:如果配置了server.servlet.context-path=/ds,请在端口后面加上该路径