1. 程式人生 > 其它 >Failed to bind properties under 'spring.datasource' to javax.sql.DataSource

Failed to bind properties under 'spring.datasource' to javax.sql.DataSource

轉載自: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>


再次啟動,成功!