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

  

  

  可能是我沒有寫初始化和銷毀方案,所以才會報錯吧。  問題是我也不知道咋寫啊 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM