Springboot集成druid连接池,无法监控sql问题

1、网上教程一大堆,集成druid连接池后,在监控页面,其他都正常,就是无法监控sql。

2、搜了搜,发现"数据源"-->"filter类名"也为空。

3、问题找到了,那就是没配置对,各种搜解决方案,都不对。

4、最后自己研究出问题原因,在DruidConfig配置类的@ConfigurationProperties注解后面的数据源spring.datasource和yml配置中的数据源目录层级不匹配。

5、config中的配置文件是这样婶儿的:

@Configuration
public class DruidConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }

    /**
     * 配置监控服务器
     * @return 返回监控注册的servlet对象
     * @author SimpleWu
     */
    @Bean
    public ServletRegistrationBean statViewServlet() {
       return new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
    }
}

6、yml之前是这样婶儿的:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis?userSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 5
      min-idle: 5
      max-active: 20
      max-wait: 60000
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 1 FROM DUAL
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      filters: stat,wall,log4j
      use-global-data-source-stat: true
      connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
      stat-view-servlet:
        login-username: admin
        login-password: 123456
        reset-enable: false
        url-pattern: /druid/*
        #allow:
        #deny:
      web-stat-filter:
        url-pattern: /*
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"

7、Druid的部分配置是在druid下的,但是数据源神马的都在datasource下,将druid下的配置都挪到datasource目录下,就OK了,变成这样婶儿的:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis?userSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource
   
    initial-size: 5
    min-idle: 5
    max-active: 20
    max-wait: 60000
    time-between-eviction-runs-millis: 60000
    min-evictable-idle-time-millis: 300000
    validation-query: SELECT 1 FROM DUAL
    test-while-idle: true
    test-on-borrow: false
    test-on-return: false
    pool-prepared-statements: true
    max-pool-prepared-statement-per-connection-size: 20
    filters: stat,wall,log4j
    use-global-data-source-stat: true
    connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    stat-view-servlet:
      login-username: admin
      login-password: 123456
      reset-enable: false
      url-pattern: /druid/*
      #allow:
      #deny:
    web-stat-filter:
      url-pattern: /*
      exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"

8、DruidConfig配置类无法读取yml中druid下的配置属性,所以filter类名为空,oh yeah~

posted @ 2022-05-15 21:03  融化的雪0701  阅读(639)  评论(0)    收藏  举报