以下是在springboot项目中实现访问druid内置监控页面的完整攻略:
1. 添加druid依赖
在pom.xml
文件中添加druid依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
2. 配置druid数据源
在application.properties
文件中添加druid数据源的配置项,如下所示:
# druid数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# druid连接池配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=2
spring.datasource.druid.max-active=20
spring.datasource.druid.min-idle=0
spring.datasource.druid.max-wait=60000
spring.datasource.druid.validation-query=select 1 from dual
spring.datasource.druid.filters=log4j,stat,wall
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=1000
# druid监控配置
spring.datasource.druid.monitor-stat-view-servlet.enabled=true
spring.datasource.druid.monitor-stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.monitor-stat-view-servlet.reset-enable=true
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=1000
其中,spring.datasource.druid.monitor-stat-view-servlet.enabled=true
表示开启druid监控页面访问功能;spring.datasource.druid.monitor-stat-view-servlet.url-pattern=/druid/*
表示访问druid监控页面的路径;spring.datasource.druid.monitor-stat-view-servlet.reset-enable=true
表示重置数据源的时候是否清空所有的监控数据。
3. 配置Servlet和Filter
在WebConfig.java
文件中配置Servlet和Filter,如下所示:
@Configuration
public class WebConfig {
@Bean
public ServletRegistrationBean druidServlet() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
// IP白名单
servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
// IP黑名单(共同存在时,deny优先于allow)
servletRegistrationBean.addInitParameter("deny", "");
// 控制台管理用户
servletRegistrationBean.addInitParameter("loginUsername", "admin");
servletRegistrationBean.addInitParameter("loginPassword", "admin");
// 是否允许重置数据
servletRegistrationBean.addInitParameter("resetEnable", "false");
return servletRegistrationBean;
}
@Bean
public FilterRegistrationBean druidFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
// 添加过滤规则
filterRegistrationBean.addUrlPatterns("/*");
// 监控选项滤器
filterRegistrationBean.addInitParameter("DruidWebStatFilter", "/*");
// 添加忽略的格式化类型
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
}
其中,allow
表示允许访问druid监控页面的ip地址,可以配置多个,用逗号隔开;loginUsername
和loginPassword
表示druid监控页面的登录用户名和密码;resetEnable
表示是否允许重置数据;addUrlPatterns
表示添加过滤规则,这里表示所有连接都需要经过过滤;addInitParameter
表示添加过滤器的参数,DruidWebStatFilter
表示监控选项滤器,这里设置为/*
,表示所有的url请求都要进行数据监控,exclusions
表示要忽略的格式化类型,多个之间用逗号隔开。
4. 访问druid监控页面
在浏览器中输入http://127.0.0.1:8080/druid
,就可以访问druid监控页面了。登录的用户名和密码与上面在ServletRegistrationBean中配置的loginUsername
和loginPassword
保持一致。
示例说明
示例1:添加IP白名单
在ServletRegistrationBean中添加allow
参数,如下所示:
@Bean
public ServletRegistrationBean druidServlet() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
// IP白名单
servletRegistrationBean.addInitParameter("allow", "127.0.0.1,192.168.1.100");
// 控制台管理用户
servletRegistrationBean.addInitParameter("loginUsername", "admin");
servletRegistrationBean.addInitParameter("loginPassword", "admin");
// 是否允许重置数据
servletRegistrationBean.addInitParameter("resetEnable", "false");
return servletRegistrationBean;
}
这里添加了一条allow
记录,表示允许127.0.0.1
和192.168.1.100
这两个IP地址访问druid监控页面。
示例2:忽略指定类型的请求
在FilterRegistrationBean中添加exclusions
参数,如下所示:
@Bean
public FilterRegistrationBean druidFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
// 添加过滤规则
filterRegistrationBean.addUrlPatterns("/*");
// 监控选项滤器
filterRegistrationBean.addInitParameter("DruidWebStatFilter", "/*");
// 添加忽略的格式化类型
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
这里添加了一条exclusions
记录,表示在访问druid监控页面时,不对*.js,*.gif,*.jpg,*.png,*.css,*.ico
和/druid/*
这些请求进行数据监控。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot项目中实现访问druid内置监控页面 - Python技术站