基本配置参数介绍
com.alibaba.druid.pool.DruidDataSource 基本配置参数如下:
配置数据源
- 添加上 Druid 数据源依赖。
<!-- Druid 连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.22</version>
</dependency>
- 切换数据源;之前已经说过 Spring Boot 2.0 以上默认使用
com.zaxxer.hikari.HikariDataSource 数据源,但可以 通过 spring.datasource.type
指定数据源。
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
username: root
password: root
3.设置数据源连接初始化大小、最大连接数、等待时间、最小连接数 等设置项
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
username: root
password: root
#Spring Boot 默认是不注入这些属性值的,需要自己绑定
#druid 数据源专有配置
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
#配置监控统计拦截的filters, stat:监控统计、log4j:日志记录、wall:防御sql注入
#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority
#则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
4.导入Log4j 的依赖(如果不导入的话,之后会报错)
<!-- log4g, ??=》springboot里面好像有自带的,但是如果没有这个druid后台监控 就会报这个错误-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
配置Druid数据源监控
Druid 数据源具有监控的功能,并提供了一个 web 界面方便用户查看,类似安装 路由器 时,人家也提供了一个默认的 web 页面。
所以第一步需要设置 Druid 的后台管理页面,比如 登录账号、密码 等;配置后台管理;
@Configuration
public class DruidConfig {
//一定要记得和配置文件里面的datasource绑定 (配置属性) 丫,不然不知道druid具体配置了什么!!!!!11
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource dataSource(){
return new DruidDataSource();
}
// 后台监控 : web.xml
@Bean
public ServletRegistrationBean servletRegistrationBean(){
// urlMappings不要忘记配置,不然怎样知道什么时候进入这个后台页面
ServletRegistrationBean<StatViewServlet> statViewServletServletRegistrationBean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");
//后台需要有人登陆,账号密码 配置
Map<String, String> initParameters=new HashMap<>();
initParameters.put("loginUsername","admin");
initParameters.put("loginPassword","admin");
//允许谁可以访问
initParameters.put("allow","");
//禁止谁能访问
// initParameters.put("dong","192.168.11.123");
//设置初始化参数
statViewServletServletRegistrationBean.setInitParameters(initParameters);
return statViewServletServletRegistrationBean;
}
@Bean
public FilterRegistrationBean filterRegistrationBean(){
FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();
bean.setFilter(new WebStatFilter());
Map<String, String> initParameters=new HashMap<>();
//这些东西不进行统计
initParameters.put("exclusions","*.js,*.css,/druid/*");
bean.setInitParameters(initParameters);
return bean;
}
}
输入http://localhost:8082/druid/
进行后台登录,登录成功后可以看到以下几个界面
平时在工作中,按需求进行配置即可,主要用作监控!
小弟才疏学浅,若有不对之处,请大家多多指教