Failed to bind properties under 'spring.datasource' to javax.sql.DataSource
阿新 • • 發佈:2021-10-31
轉載自:https://blog.csdn.net/xingkongtianma01/article/details/81624313
網上查了下,沒有找打相關的報錯解決辦法,所以在解決問題後,整理到網上,幫助有需要的朋友。
springboot整合druid時,引入了druid的資料來源,在配置檔案application.yml中配置了相關配置
initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true # 配置監控統計攔截的filters,去掉後監控介面sql無法統計,'wall'用於防火牆 filters: stat,wall,log4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 也作了相關配置 DruidConfig.class
@Configuration public class DruidConfig { @ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource druid() { return new DruidDataSource(); } // 配置Druid的監控 // 1、配置一個管理後臺的Servlet @Bean public ServletRegistrationBean statViewServlet() { ServletRegistrationBean bean= new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); Map<String, String> initParams = new HashMap<>(); initParams.put("loginUsername", "admin"); initParams.put("loginPassword", "123456"); initParams.put("allow", "");// 預設就是允許所有訪問 initParams.put("deny", "10.18.172.124"); bean.setInitParameters(initParams);return bean; } // 2、配置一個web監控的filter @Bean public FilterRegistrationBean webStatFilter() { FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map<String, String> initParams = new HashMap<>(); initParams.put("exclusions", "*.js,*.css,/druid/*"); bean.setInitParameters(initParams); bean.setUrlPatterns(Arrays.asList("/*")); return bean; } }
但是在啟動時報錯:
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to bind properties under 'spring.datasource' to javax.sql.DataSource:
Property: spring.datasource.filters
Value: stat,wall,log4j
Origin: class path resource [application.yml]:24:14
Reason: org.apache.log4j.Logger
Action:
Update your application's configuration
根據報錯提示在配置檔案的24行,檢視配置檔案,該行程式碼是 filters: stat,wall,log4j
看報錯原因Reason: org.apache.log4j.Logger,於是猜想少了log4j的相關依賴,在pom中引入相關依賴
<!-- https://mvnrepository.com/artifact/log4j/log4j --> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
再次啟動,成功!