Druid是什么
通俗点来说它是个不但继承了tomcat、dbcp2数据库连接池的优点,还支持扩展插件的数据库连接池,
其中最常用的三个插件:start、wall、log4j带给druid强大的后台监控、防御sql注入和日志等功能。
再简单点来说,它会有一个自己的后台监控页面,像这样:
简单例子
依赖
<!--Druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
配置文件
spring:
datasource:
username: root
password:
url: jdbc:mysql://127.0.0.1:3306/mybatis_plus?serverTimezone=GMT&&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource #更改数据库的数据源
# druid继承的tomcat、dbcp2的一些属性
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMinllis: 60000
minEvictableIdleTimeMills: 300000
testWhileIdle: true
testOnBorrow: false
testOnReturn: fales
poolPreparedStatements: true
# druid自己的能支持扩展插的配置
filters: start,wall,log4j #分别是后台监控、防御sql注入和日志
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
配置类
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druidDataSource(){
return new DruidDataSource();//实例druid数据源
}
@Bean
public ServletRegistrationBean servletRegistrationBean(){
//配置后台页面的映射路径
ServletRegistrationBean<StatViewServlet> servlet =
new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");
HashMap<String,String> init = new HashMap<>();
//配置登陆账号密码
init.put("loginUsername","ncb");
init.put("loginPassword","123");
servlet.setInitParameters(initParameters);
return servlet;
}
}
验证结果
-
首先打开localhost:8006/druid(端口改成自己项目的)
-
Postman向该项目发请求,使用8006端口的SQL(我这只是在86端口用了Ferign,实际访问的还是8006端口的SQL)
-
到SQL防火墙下找到白名单,看到了访问涉及到的SQL语句也进来了
当然啦,druid的知识还有很多,这里算做个笔记吧。
本文地址:https://blog.csdn.net/FHlang/article/details/110212688