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


這是我的配置文件  

# 國際化配置文件(包名.基礎名)
spring.messages.basename=i18n.login
server.tomcat.uri-encoding=UTF-8
spring.mvc.date-format=yyyy-MM-dd
# 禁用緩存
spring.thymeleaf.cache=false 
#ctrl+f9 重新編譯頁面
spring.datasource.password=root
spring.datasource.username=root
spring.datasource.url=jdbc:mysql://localhost:3306/jdbc
spring.datasource.driver-class-name=com.alibaba.druid.proxy.DruidDriver

#黃色背景如果不進行注冊那么就不會起作用
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive= 20
spring.datasource.maxWait= 60000
spring.datasource.timeBetweenEvictionRunsMillis= 60000
spring.datasource.minEvictableIdleTimeMillis= 300000
spring.datasource.validationQuery= SELECT 1 FROM DUAL
spring.datasource.testWhileIdle= true
spring.datasource.testOnBorrow= false
spring.datasource.testOnReturn= false
spring.datasource.poolPreparedStatements= true
#   配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用於防火牆
spring.datasource.filters= stat,wall,log4j
spring.datasource.maxPoolPreparedStatementPerConnectionSize= 20
spring.datasource.useGlobalDataSourceStat=true
spring.datasource.connectionProperties= druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
#指定全局配置文件的位置
#mybatis.config-location=classpath:mybatis/mybatis-config.xml
#指定sql映射文件的位置
#mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

紅色部分,如果不進行注冊就不會起作用 ,寫一個配置文件指出來

package cn.edu.aynu.springboot.zhaoyujing.Config;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.servlet.Filter;
import javax.servlet.Servlet;
import javax.sql.DataSource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

@Configuration
public class DruidConfig {

    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druid(){
        return  new DruidDataSource();
    }
    //配置Druid的監控
    //配置一個管理后台的Servlet
    @Bean
   public  ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean<Servlet> 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","192.168.15.21");
        bean.setInitParameters(initParams);
        return bean;
    }
     /*配置一個web監管的filter*/
    @Bean
   public FilterRegistrationBean webStatFilter(){
       final FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();
       bean.setFilter(new WebStatFilter());
       Map<String,String> initParams = new HashMap<>();
       bean.setInitParameters(initParams);

       bean.setUrlPatterns(Arrays.asList("/*"));
       return  bean;
   }

}

但是卻報錯了

 

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.properties]:26:28
    Reason: org.apache.log4j.Logger

Action:

Update your application's configuration


Process finished with exit code 1

根據提示可知需要加上一個就可以解決了

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

 


免責聲明!

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



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