Druid's sql monitoring in SpringBoot has no data solution

This article mainly introduces how to solve the problem that there is no data in sql monitoring after SpringBoot integrates Druid.
If necessary, you can refer to it
. If it is helpful, don’t forget to like it❥

First we need to integrate Druid

  • Introduce dependencies in pom.xml

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

       #指定连接池类型
       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
    
  • Create a Druid configuration class

    //这个注解用来声明跟这个类是配置类
    @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;
        }
    }
    

In this way we have configured Druid

  • Start the project, visit localhost:port number/druid, jump to the login page, and log in using the configured admin and 123456

  • The problem comes at this time. We don’t see the data in the SQL monitoring in the druid management page.

    Insert image description here
  • solution

    • Add to configuration parameters
          #配置监控统计拦截的filters,去掉后监控界面sql将无法统计
          spring.datasource.filters : stat
      
    • Then start the project and visit the druid management page again. At this time, you can see that there is data in the sql monitoring.
      Insert image description here
    • In this way, the problem of no sql monitoring can be successfully solved. If there are still problems, check the dependencies in the pom file.

Guess you like

Origin blog.csdn.net/weixin_43287239/article/details/99712675