zoukankan      html  css  js  c++  java
  • SpringBoot 配置Druid:不显示SQL监控 —(*) property for user to setup

      题外话: SpringBoot整合Druid 请查看https://www.cnblogs.com/JealousGirl/p/druid.html

      Druid登录后数据源页面、SQL监控等不显示数据信息。具体情况如下:

      

      

      搜索到的解决方案各式各样。

      前提条件:

      1. 配置文件中的druid的配置参数信息格式是否有错误, 是否全都是spring.datasource.*    

      2. 配置统计拦截的filters是否写的正确。日志框架与项目采用的日志框架格式保证一致。如下图红框标注处:

      

      在保证以上内容一致的情况下。出现SQL监控不显示数据问题解决方案如下。

      1. 更改前代码(我是配置多数据源,故有@Primary)

    1     @Bean(name = "oneDataSource")
    2     @ConfigurationProperties(prefix = "spring.datasource.one")
    3     @Primary
    4     public DataSource oneDataSource() {
    5         return DataSourceBuilder.create().build();
    6     }
    View Code

         更改后代码

     1     @Value("${spring.datasource.one.name}")
     2     private String oneName;
     3 
     4     @Value("${spring.datasource.one.url}")
     5     private String oneUrl;
     6 
     7     @Value("${spring.datasource.one.username}")
     8     private String oneUsername;
     9 
    10     @Value("${spring.datasource.one.password}")
    11     private String onePassword;
    12 
    13     @Value("${spring.datasource.one.driver-class-name}")
    14     private String oneDriverClassName;
    15 
    16     @Value("${spring.datasource.one.initialSize}")
    17     private String oneInitialSize;
    18 
    19     @Value("${spring.datasource.one.minIdle}")
    20     private String oneMinIdle;
    21 
    22     @Value("${spring.datasource.one.maxActive}")
    23     private String oneMaxActive;
    24 
    25     @Value("${spring.datasource.one.maxWait}")
    26     private String oneMaxWait;
    27 
    28     @Value("${spring.datasource.one.timeBetweenEvictionRunsMillis}")
    29     private String oneTimeBetweenEvictionRunsMillis;
    30 
    31     @Value("${spring.datasource.one.minEvictableIdleTimeMillis}")
    32     private String oneMinEvictableIdleTimeMillis;
    33 
    34     @Value("${spring.datasource.one.validationQuery}")
    35     private String oneValidationQuery;
    36 
    37     @Value("${spring.datasource.one.filters}")
    38     private String oneFilters;
    39 
    40     @Value("{spring.datasource.one.logSlowSql}")
    41     private String oneLogSlowSql;
    42 
    43     @Value("${spring.datasource.one.type}")
    44     private String oneType;
    45 
    46     @Value("{spring.datasource.one.maxIdle}")
    47     private String oneMaxIdle;
    48 
    49     @Bean
    50     @Primary
    51     public DataSource oneDataSource() {
    52         DruidDataSource datasource = new DruidDataSource();
    53 
    54         datasource.setUrl(oneUrl);
    55         datasource.setUsername(oneUsername);
    56         datasource.setPassword(onePassword);
    57         datasource.setDriverClassName(oneDriverClassName);
    58 
    59         //configuration
    60         if (StringUtils.isNotBlank(oneInitialSize)) {
    61             datasource.setInitialSize(Integer.parseInt(oneInitialSize));
    62         }
    63         if (StringUtils.isNotBlank(oneMinIdle)) {
    64             datasource.setMinIdle(Integer.parseInt(oneMinIdle));
    65         }
    66         if (StringUtils.isNotBlank(oneMaxActive)) {
    67             datasource.setMaxActive(Integer.parseInt(oneMaxActive));
    68         }
    69         if (StringUtils.isNotBlank(oneMaxWait)) {
    70             datasource.setMaxWait(Integer.parseInt(oneMaxWait));
    71         }
    72         if (StringUtils.isNotBlank(oneTimeBetweenEvictionRunsMillis)) {
    73             datasource.setTimeBetweenEvictionRunsMillis(Integer.parseInt(oneTimeBetweenEvictionRunsMillis));
    74         }
    75         if (StringUtils.isNotBlank(oneMinEvictableIdleTimeMillis)) {
    76             datasource.setMinEvictableIdleTimeMillis(Integer.parseInt(oneMinEvictableIdleTimeMillis));
    77         }
    78 
    79         datasource.setValidationQuery(oneValidationQuery);
    80         datasource.setTestWhileIdle(true);
    81         datasource.setTestOnBorrow(false);
    82         datasource.setTestOnReturn(false);
    83         try {
    84             datasource.setFilters(oneFilters);
    85         } catch (SQLException e) {
    86             e.printStackTrace();
    87         }
    88         return datasource;
    89     }
    View Code

      也有其他地方搜索到的解决方案,亲身测试后,使用手动配置数据信息时未发现有不同,大家可以尝试一下,一起分享。

      方案一:有人说是包引入错误

      

      改为

      

      方案二: 有人说是未配置监控拦截的filters(以上截图中有此配置,故不再截图)

      

      至于为什么使用注解配置的数据信息不显示SQL监控等信息,目前还未找到原因。也搜到了相关解决方案,具体如下,很可惜尝试后未解决。。。

      方案一: 如果是jpa引入jar包, 如果是是mybatis 在@Bean后加上init属性。 我的是mybatis

      

      

      可能是我没有写初始化和销毁方案,所以才会报错吧。  问题是我也不知道咋写啊 

      

  • 相关阅读:
    12.extern(转)
    QT错误笔记-Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.
    11.static(转)
    C/C++ 错误笔记-在给结构体中的指针赋值时,要注意该指针是否已指向内存空间
    10.动态库
    【转载】pygame的斜线运动
    题解-python-CodeForces 227B
    题解-python-CodeForces 227A
    【笔记】Python简明教程
    Pyhton核心编程-Chap2习题-DIY
  • 原文地址:https://www.cnblogs.com/JealousGirl/p/springboot_druid.html
Copyright © 2011-2022 走看看