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文件里面的依赖 .

猜你喜欢

转载自blog.csdn.net/weixin_43287239/article/details/99712675