題外話: SpringBoot整合Druid 請查看https://www.cnblogs.com/JealousGirl/p/druid.htmlhtml
Druid登陸後數據源頁面、SQL監控等不顯示數據信息。具體狀況以下:spring
搜索到的解決方案各式各樣。mybatis
前提條件:框架
1. 配置文件中的druid的配置參數信息格式是否有錯誤, 是否全都是spring.datasource.* ide
2. 配置統計攔截的filters是否寫的正確。日誌框架與項目採用的日誌框架格式保證一致。以下圖紅框標註處:測試
在保證以上內容一致的狀況下。出現SQL監控不顯示數據問題解決方案以下。ui
1. 更改前代碼(我是配置多數據源,故有@Primary)url
1 @Bean(name = "oneDataSource") 2 @ConfigurationProperties(prefix = "spring.datasource.one") 3 @Primary 4 public DataSource oneDataSource() { 5 return DataSourceBuilder.create().build(); 6 }
更改後代碼spa
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 }
也有其餘地方搜索到的解決方案,親身測試後,使用手動配置數據信息時未發現有不一樣,你們能夠嘗試一下,一塊兒分享。日誌
方案一:有人說是包引入錯誤
改成
方案二: 有人說是未配置監控攔截的filters(以上截圖中有此配置,故再也不截圖)
至於爲何使用註解配置的數據信息不顯示SQL監控等信息,目前還未找到緣由。也搜到了相關解決方案,具體以下,很惋惜嘗試後未解決。。。
方案一: 若是是jpa引入jar包, 若是是是mybatis 在@Bean後加上init屬性。 個人是mybatis
多是我沒有寫初始化和銷燬方案,因此纔會報錯吧。 問題是我也不知道咋寫啊