添加maven依赖
// 网上很多都推荐导入这个依赖,但是使用这个包之后,无法在监控页面
//(http://localhost:7783/card/druid/sql.html)查看sql监控
com.alibaba
druid
1.1.10
// 应该使用这个依赖
com.alibaba
druid-spring-boot-starter
1.1.17
引入依赖后在application.properties中配置参数:
这个是网上别的大神博客中的配置,配置文件是yml
spring:
application:
name: dev-manager
datasource:
# 配置数据源类型
type:
com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/dev_manage?useUnicode=true&characterEncoding=UTF-8
username: root
password: abc12345
# 初始化,最小,最大连接数
initialSize: 3
minidle: 3
maxActive: 18
# 获取数据库连接等待的超时时间
maxWait: 60000
# 配置多久进行一次检测,检测需要关闭的空闲连接 单位毫秒
timeBetweenEvictionRunsMillis: 60000
validationQuery: SELECT 1 FROM dual
# 配置监控统计拦截的filters,去掉后,监控界面的sql无法统计
filters: stat,wall,log4j
但是,实际在使用他们的配置之后,发现配置没有生效
一番研究之后发现,这样的写法才生效了,具体什么原因,欢迎研究出来的同学,和我分享一下
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=3
spring.datasource.druid.minidle=3
spring.datasource.druid.max-active=18
# 获取数据库连接等待的超时时间
spring.datasource.druid.maxWait=60000
# 配置多久进行一次检测,检测需要关闭的空闲连接 单位毫秒
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
spring.datasource.druid.validationQuery=SELECT 1 FROM dual
# 配置监控统计拦截的filters,去掉后,监控界面的sql无法统计
spring.datasource.druid.filters= stat,wall,log4j
配置监控统计功能:
//这样的方式不需要在启动类头上添加注解:@ServletComponentScan
@Configuration
public class DruidConfiguration {
/**
* 注册一个StatViewServlet
* @return
*/
@Bean
public ServletRegistrationBean DruidStatViewServle(){
//org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
//添加初始化参数:initParams
//白名单:
servletRegistrationBean.addInitParameter("allow","127.0.0.1");
//IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page.
servletRegistrationBean.addInitParameter("deny","192.168.0.114");
//登录查看信息的账号密码.
servletRegistrationBean.addInitParameter("loginUsername","admin");
servletRegistrationBean.addInitParameter("loginPassword","123456");
//是否能够重置数据.
servletRegistrationBean.addInitParameter("resetEnable","false");
return servletRegistrationBean;
}
/**
* 注册一个:filterRegistrationBean
* @return
*/
@Bean
public FilterRegistrationBean druidStatFilter(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
//添加过滤规则.
filterRegistrationBean.addUrlPatterns("/*");
//添加不需要忽略的格式信息.
filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
}
@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",
initParams={
@WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
}
)
public class DruidStatFilter extends WebStatFilter {
}
经过以上配置之后,大家就可以访问http://localhost:服务端口/druid/login.html,查看监控页面了
但是还是有部分同学,还是提示404,这个时候查看一下自己的项目,是否配置了项目路径
//例如
server.servlet.context-path=/nimbleBus
如果配置了项目路径,访问http://localhost:服务端口/nimbleBus/druid/login.html即可
PS:我就是在这里爬了好久的坑,捂脸つ﹏⊂
最后附上在此过程中借鉴的各位大神的资料:
https://blog.csdn.net/u014209205/article/details/80625963
https://412887952-qq-com.iteye.com/blog/2292362
https://www.cnblogs.com/6324/p/6826231.html
https://blog.csdn.net/sjm01234/article/details/79009545
https://blog.csdn.net/qq_37758497/article/details/86503559