Druid(德鲁伊)
config配置
//德鲁伊Druid数据源的配置类
//@Configuration
public class MyDruidDataSourceConfig {
//在IOC容器中注入DruidDataSource数据源实例bean,将会替换默认数据源的组件
@Bean
//配置绑定 , 在yaml文件中直接使用指定前缀进行操作属性
@ConfigurationProperties(prefix = "spring.datasource")
public DruidDataSource druidDataSource() throws SQLException {
DruidDataSource druidDataSource = new DruidDataSource();
//用于统计监控信息;如SQL监控、URI监控
druidDataSource.setFilters("wall,stat,slf4j");
return druidDataSource;
}
//配置StatViewServlet组件,提供监控信息展示的html页面
@Bean
public ServletRegistrationBean<StatViewServlet> servletRegistrationBean(){
StatViewServlet statViewServlet = new StatViewServlet();
ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<>(statViewServlet,"/druid/*");
//配置访问的用户名和密码
servletRegistrationBean.addInitParameter("loginUsername","admin");
servletRegistrationBean.addInitParameter("loginPassword","admin");
//设置是否可以重置SQL记录,禁止清空数据false
servletRegistrationBean.addInitParameter("resetEnable","false");
return servletRegistrationBean;
}
//WebStatFilter 用于采集web-jdbc关联监控的数据。
@Bean
public FilterRegistrationBean<WebStatFilter> filterRegistrationBean(){
WebStatFilter webStatFilter = new WebStatFilter();
FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<>();
//设置过滤器
filterRegistrationBean.setFilter(webStatFilter);
//设置过滤路径
filterRegistrationBean.addUrlPatterns("/*");
//设置放行的路径
filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
}
yaml配置
#配置jdbc
spring:
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/test?unicode=true&characterEncode=utf8&serverTimezone=GMT%2B8
driver-class-name: com.mysql.cj.jdbc.Driver
#配置德鲁伊
druid:
aop-patterns: com.nl.boot
#开启SQL监控、防火墙监控、日志监控
filters: stat,wall,slf4j
#配置statViewServlet
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: admin
login-password: admin
reset-enable: false
#配置WebStatFilter 用于采集web-jdbc关联监控的数据
web-stat-filter:
#开启
enabled: true
#设置过滤路径
url-pattern: /*
#设置排除在外的路径
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
filter: #配置细节
wall: #防火墙
config:
selelct-allow: true #不允许查询
insert-allow: true #允许插入
delete-allow: true #允许删除
#stat SQL监控,对上面filters里面的stat的详细配置
stat:
enabled: true
log-slow-sql: true #开启慢日志查询
slow-sql-millis: 1000 #查询SQL时,超过1s,计算慢,将会记录进慢日志中
二者只能用一个