- 1. DRUID 简介
- 2. 配置application.yml 文件
- 3. Druid配置类
- 4. 测试
Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了C3P0、DBCP、PROXOOL等DB池的优点,
同时加入了日志监控。
Druid 可以很好的监控DB连接池和SQL的执行情况,天生就是针对监控产生的DB连接池。
SpringBoot 2.0 以上默认使用 Hikar i数据源,可以说 Hikari 与 Druid 都是当前 Java Web 上最优秀的数
据源,本篇重点介绍SpringBoot如何集成Druid数据源。如何实现数据库的监控。
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&serverTimezone=UTC&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver //mysql8.0版本以上使用
type: com.alibaba.druid.pool.DruidDataSource
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化⼤⼩,最⼩,最⼤
initial-size: 5
min-idle: 5
max-active: 20
# 配置获取连接等待超时的时间
max-wait: 60000
# 配置间隔多久才进⾏⼀次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置⼀个连接在池中最⼩⽣存的时间,单位是毫秒
min-evictable-idle-time-millis: 300000
validation-query: SELECt 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
# 打开PSCache,并且指定每个连接上PSCache的⼤⼩
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
# 配置监控统计拦截的 Filter,去掉后监控界⾯ SQL ⽆法统计,wall ⽤于防⽕墙 ⽇志 log4j
filters: stat,wall,log4j #导⼊了log4j
use-global-data-source-stat: true
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
3. Druid配置类
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druidDataSource(){
return new DruidDataSource();
}
//后台监控
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean bean =
new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
//后台需要有人登录 账号密码配置
HashMap initParameters = new HashMap<>();
//增加配置
initParameters.put("loginUsername","admin"); //登陆的key 是固定的loginUser , loginPassword
initParameters.put("loginPassword","123");
//允许谁可以访问
initParameters.put("allow","");
//禁止谁不能访问 initParameters.put("yl","192.168.79.113);
bean.setInitParameters(initParameters); //设置初始化参数
return bean;
}
//filter
public FilterRegistrationBean webStartFilter(){
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
//可以过滤那些请求
HashMap initParameters = new HashMap<>();
initParameters.put("exclusions", "*.js,*.css,/druid/*");
bean.setInitParameters(initParameters);
return bean;
}
}
4. 测试
启动SpringBootqom服务
访问 http://localhost:8080/druid
显示登录窗口
登录成功首页



