SpringBoot中Druid的sql监控没有数据解决

本文主要介绍如何解决SpringBoot集成Druid后sql监控没有数据
如有需要,可以参考
如有帮助,不忘 点赞

首先我们要集成Druid

  • 在pom.xml中引入依赖

      	 <!--设置数据源 默认是使用springboot中的jdbc连接池-->
          <dependency>
              <groupId>com.alibaba</groupId>
              <artifactId>druid</artifactId>
              <version>1.1.16</version>
          </dependency>
    
  • 配置参数

       #指定连接池类型
       spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
       #连接池的配置信息
       #初始化大小,最小,最大
       spring.datasource.initalSize=5
       spring.datasource.maxActive=20
       spring.datasource.minIdle=5
       #配置获取连接等待超时的时间
       spring.datasource.maxWait=60000
       # 配置一个连接在池中最小生存的时间,单位是毫秒
       spring.datasource.minEvictableIdleTimeMillis=300000
       spring.datasource.validationQuery=SELECT 1 FROM DUAL
       spring.datasource.testWhileIdle=true
       spring.datasource.testOnBorrow=false
       spring.datasource.testOnReturn=false
    
  • 创建一个Druid的配置类

    //这个注解用来声明跟这个类是配置类
    @Configuration
    public class DruidConfig {
    
        @ConfigurationProperties(prefix = "spring.datasource")	// 用来扫描配置文件中前缀为spring.datasource的配置信息
        @Bean			//用来注册到配置容器中
        public DataSource druid() {
            return new DruidDataSource();
        }
    
        //配置Druid的监控
        //配置一个管理后台的Servlet
        @Bean
        public ServletRegistrationBean statViewServlet() {
            ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
    
            Map<String,String> initParam = new HashMap<>();
            initParam.put("loginUsername","admin");
            initParam.put("loginPassword","123456");
            initParam.put("allow","");  //默认就是允许所有访问
            initParam.put("deny","");		//默认访问
    
            servletRegistrationBean.setInitParameters(initParam);
            return  servletRegistrationBean;
        }
    
        //注册一个filters
        @Bean
        public FilterRegistrationBean druidStatFilter(){
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
            //添加过滤规则.
            filterRegistrationBean.addUrlPatterns("/*");
            //添加不需要忽略的格式信息.
            filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
            return filterRegistrationBean;
        }
    }
    

这样子我们就配置好了Druid

  • 启动项目, 访问localhost:端口号/druid, 跳转到登录页面, 使用配置好的admin和123456登录

  • 这时问题就来了, 我们在druid管理页面中的sql监控中没看到数据

    在这里插入图片描述
  • 解决方案

    • 在配置参数中加上
          #配置监控统计拦截的filters,去掉后监控界面sql将无法统计
          spring.datasource.filters : stat
      
    • 然后启动项目, 再次访问druid的管理页面, 这时就可以看到sql监控中有数据了
      在这里插入图片描述
    • 这样子就可以成功解决无sql监控的问题, 如果还是有问题检查一下pom文件里面的依赖 .
  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值