druid的参考文档:https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98
使用stater时在配置文件中配置的格式:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter
导入依赖,原生版的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.8</version>
</dependency>
starter版的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
配置方式有两种一种是直接在SpringBoot的配置文件中配置,另一种是自己写一个配置类,进行配置。
在这里只给出配置文件的说明,其它的代码我是用的整合JDBC的代码具体源码看:《springboot整合JDBC》
第一种方式使用配置类的方方式
package com.zkw.config;
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 com.alibaba.druid.pool.DruidDataSource;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@Configuration
public class DruidConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druidDataSource() throws SQLException {
DruidDataSource dataSource =new DruidDataSource();
//开启druid的监控统计功能 wall 开启防火墙
dataSource.setFilters("stat,wall");
return dataSource;
}
//druid后台监控页
@Bean
public ServletRegistrationBean registrationBean(){
ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");
//设置druid登录的账号和密码
Map<String, String> map = new HashMap<>();
map.put("loginUsername","admin");
map.put("loginPassword","123456");
//允许谁访问
// map.put("allow","127.0.0.1");
//拒绝谁访问
// map.put("deny","127.0.0.1");
//设置初始化参数
registrationBean.setInitParameters(map);
return registrationBean;
}
/**
* 监控web应用 WebStatFilter
*/
@Bean
public FilterRegistrationBean webStatFilter(){
WebStatFilter webStatFilter = new WebStatFilter();
FilterRegistrationBean<WebStatFilter> registrationBean = new FilterRegistrationBean<>(webStatFilter);
//拦截所有的请求
registrationBean.setUrlPatterns(Arrays.asList("/*"));
//那些请求不拦截
registrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return registrationBean;
}
}
第二种方式
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
type: com.alibaba.druid.pool.DruidDataSource
druid:
# 开的功能 stat:sql监控功能 wall:防火墙监控功能
filters: stat,wall
# 配置监控页面的
stat-view-servlet:
enabled: true
login-password: admin
login-username: admin
url-pattern: /druid/*
#禁止重置数据
reset-enable: false
# web监控的配置
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
#监控springBean
aop-patterns: com.zkw.*
这两种方式实现的功能是完全一样的
通过配置文件中配置,这里的用户名和密码对应的就是druid的登录页面
stat-view-servlet:
enabled: true
login-password: admin
login-username: admin
# 开的功能 stat:sql监控功能 wall:防火墙监控功能
filters: stat,wall
wall:防火墙监控功能,可以看见我们总共执行了多少次sql语句,以及都执行了那些sql语句
这个可以看到我们都访问了那些java类
#监控springBean
aop-patterns: com.zkw.*