绑定配置配置的yml文件
@Configuration
public class DruidConfig {
// @ConfigurationProperties:用于参数绑定,需要指定文件
@ConfigurationProperties(prefix = "spring.datasource")
// 将我们创建的数据源加在容器中
@Bean
public DataSource druid(){
return new DruidDataSource();
}
}
yml配置文件
spring:
datasource:
username: root
password: 123456
# useUnicode=true&characterEncoding=UTF-8: 解决中文乱码问题
# serverTimezone=UTC: 其中UTC是统一标准世界时间
url: jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
# com.mysql.jdbc.Driver: 老的版本的这个,被替换掉了
# SpringBoot2.0之后默认的数据源是: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
# 在SpringBoot2.0以上版本需要添加这条命令,表示:Always initialize the datasource
initialization-mode: always
# 使用type更换数据源DruidDataSource
type: com.alibaba.druid.pool.DruidDataSource
# 数据源其他配置
# 数据库连接池初始化的大小
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
之后运行主程序报如下错误
***************************
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]:29:14
Reason: org.apache.log4j.Logger
Action:
Update your application's configuration
里边有一行:Reason: org.apache.log4j.Logger 因此我试着在pom文件中添加了log4j依赖
<!-- 引入log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
重新运行无报错!