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

  

  

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

 

  

posted @ 2019-08-02 15:44  爱吃醋的兔子  阅读(4765)  评论(0编辑  收藏  举报