Druid是阿里巴巴开源的数据库连接池,提供了优秀的对数据库操作的监控功能。
一. 集成的配置方式
详见:https://juejin.im/post/5aceec94f265da2395315d68
1. 添加对druid的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
2. 在application.properties中添加对druid的配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
还可以添加druid的其它信息
3. 创建DruidServlet和DruidFilter,其中Servlet和Filter的配置有两种方式:
3.1. 通过Spring容器的注册工厂注入(ServletRegistrationBean和FilterRegistrationBean)
@Configuration
public class DruidConfig {
//注册Servlet
@Bean
@ConditionalOnMissingBean
public ServletRegistrationBean addS(){
ServletRegistrationBean registrationBean=new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
return registrationBean;
}
//注册Filter
@Bean
@ConditionalOnMissingBean
public FilterRegistrationBean addF(){
FilterRegistrationBean registrationBean=new FilterRegistrationBean(new WebStatFilter());
registrationBean.addUrlPatterns("/*");
return registrationBean;
}
}
3.2. 通过自定义类 添加注解@WebServlet和@WebFilter
@WebFilter(urlPatterns = "/*")
public class MyFilter extends WebStatFilter {
}
@WebServlet("/druid/*")
public class MyServlet extends StatViewServlet {
}
二. 下面讲讲Druid在SQL监控统计功能中,内置的一些类和注解:
1.StatViewServlet
StatViewServlet用于展示Druid的统计信息。
- 提供监控信息展示的html页面
- 提供监控信息的JSON API
StatViewServlet是一个标准的javax.servlet.http.HttpServlet,com.alibaba.druid.support.http.StatViewServlet
如果需要通过用户名和密码才能查看JDBC的执行的状态信息,需要配置Servlet的 loginUsername
和 loginPassword
这两个初始参数。
2. WebStatFilter
webStatFilterDruid用于统计Druid的监控信息。
如果没有配置WebStatFilter,那么,我们无法获取相关的统计信息。
比如:SQL监控TAB上的数据,无法获取JDBC相关的SQL执行信息。