1、druid官方github地址
https://github.com/alibaba/druid
整合第三方技术的两种方式
- 自定义
- 找starter
一.pom.xml导入依赖
<!-- jdbc--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency> <!-- mysql驱动 默认8.0--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- druid连接池--> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.6</version>--> </dependency>
二.创建configuration配置类
1.StatViewServlet
StatViewServlet的用途包括:
- 提供监控信息展示的html页面
- 提供监控信息的JSON API
2.StatFilter
用于统计监控信息;如SQL监控、URI监控
系统中所有filter:
别名 | Filter类名 |
default | com.alibaba.druid.filter.stat.StatFilter |
stat | com.alibaba.druid.filter.stat.StatFilter |
mergeStat | com.alibaba.druid.filter.stat.MergeStatFilter |
encoding | com.alibaba.druid.filter.encoding.EncodingConvertFilter |
log4j | com.alibaba.druid.filter.logging.Log4jFilter |
log4j2 | com.alibaba.druid.filter.logging.Log4j2Filter |
slf4j | com.alibaba.druid.filter.logging.Slf4jLogFilter |
commonlogging | com.alibaba.druid.filter.logging.CommonsLogFilter |
package com.example.conf;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.Arrays;
/**
* @author 谭铖
* @date 2021/8/5 16:25
* Druid连接池配置方法(推荐直接注入的state)
*/
@Configuration //配置类
public class DruidConfiguration {
// 因为源码里面没有写datasource就会自己创建一个 HikariDataSource
@Bean
@ConfigurationProperties("spring.datasource")
public DataSource DataSource() throws SQLException {
DruidDataSource druidDataSource = new DruidDataSource();
// 开启监控 stat;
// wall开启防火墙
druidDataSource.setFilters("stat,wall");
return druidDataSource;
}
/**
* 开启Druid控制器 (使用原生servlet注入)
* @return
*/
@Bean
public ServletRegistrationBean StatViewServlet(){
StatViewServlet statViewServlet = new StatViewServlet();
// 绑定设置控制器路径
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(statViewServlet, "/druid/*");
// 设置账号密码
servletRegistrationBean.addInitParameter("loginUsername","admin");
servletRegistrationBean.addInitParameter("loginPassword","admin");
return servletRegistrationBean;
}
/**
* 开启Web关联监控配置
* @return
*/
@Bean
public FilterRegistrationBean WebStatFilter(){
WebStatFilter webStatFilter = new WebStatFilter();
// 绑定
FilterRegistrationBean<WebStatFilter> webStatFilterFilterRegistrationBean = new FilterRegistrationBean<>(webStatFilter);
// 过滤路径
webStatFilterFilterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));
// 不过滤的路径
webStatFilterFilterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return webStatFilterFilterRegistrationBean;
}
}
然后运行springboot输入http://localhost:8080/druid就可以进入控制器输入账号密码就可以了
登录里面就是这样的啦
可以查看多个