application.yml的配置
spring:
datasource:
username: root
password: *******
url: jdbc:mysql://localhost:3306/spring-boot-jdbc?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
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,stat:监控统计、log4j:日志记录、wall:防御sql注入
#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority
#则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

测试结果
通过设置断点debug获取druid连接池的数据源参数

发现自定义druid数据源并没有生效
问题分析
druid数据源没有生效说明bean里没有注入自定义数据源

即spring.datasource并没有注入数据源
发现并解决问题
检查application.yml 发现确实是yml中没有注入自定义数据源,左边一定要包含进spring.datasource

总结
一个小小的排版问题给弄了很久,很难受,含泪写下这篇博客=_=

本文主要讲述了在Spring Boot应用中,Druid数据源自定义配置未生效的问题。作者通过分析发现,问题源于`application.yml`配置文件中缺少对自定义数据源的注入。解决方案是在配置文件中正确包含`spring.datasource`,以此确保数据源的注入。最后,作者对此进行了总结,提醒开发者注意此类排版细节。
4621

被折叠的 条评论
为什么被折叠?



