千家信息网

如何解决springboot配置druid数据源不生效的问题

发表于:2025-11-19 作者:千家信息网编辑
千家信息网最后更新 2025年11月19日,今天就跟大家聊聊有关如何解决springboot配置druid数据源不生效的问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。pom文件如果你
千家信息网最后更新 2025年11月19日如何解决springboot配置druid数据源不生效的问题

今天就跟大家聊聊有关如何解决springboot配置druid数据源不生效的问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

pom文件

如果你的springboot项目要用到druid,那么这三个依赖必不可少:

            com.alibaba            druid-spring-boot-starter            1.1.10                                    com.alibaba            druid            1.1.12                                    log4j            log4j            1.2.17        

我踩到的第一个坑就踩到这了。当时我没有引入druid-spring-boot-starter这个依赖,所以在测试的时候就出了问题,最后还是查找了资料才解决。下面踩的坑就更加离谱了。

踩坑经历与解决方案

起初,我的yml配置文件是这样写的:

spring:  datasource:    username: root    password: bugeinikan    url: jdbc:mysql://localhost:3306/2021summer?useUnicode=true&characterEncoding=utf-8    driver-class-name: com.mysql.cj.jdbc.Driver    type: com.alibaba.druid.pool.DruidDataSource    druid:      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

这看起来毫无毛病,而且idea也并没有报错。
然后我们把数据源添加到容器中,DruidConfig类代码如下:

@Configurationpublic class DruidConfig {    @ConfigurationProperties(prefix = "spring.datasource")    @Bean    public DataSource druidDataSource() {        return new DruidDataSource();    }}

编写测试类,测试程类代码如下:

@SpringBootTestclass ApplicationTests {    @Autowired    DataSource dataSource;    @Test    void contextLoads() throws SQLException {        System.out.println(dataSource.getClass());        //获得连接        Connection connection =   dataSource.getConnection();        System.out.println(connection);        DruidDataSource druidDataSource = (DruidDataSource) dataSource;        System.out.println("druidDataSource 数据源最大连接数:" + druidDataSource.getMaxActive());        System.out.println("druidDataSource 数据源初始化连接数:" + druidDataSource.getInitialSize());        //关闭连接        connection.close();    }}

输出结果:

class com.alibaba.druid.pool.DruidDataSource
2021-09-24 16:12:52.689 INFO 4408 - [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
com.mysql.cj.jdbc.ConnectionImpl@7b96de8d
druidDataSource 数据源最大连接数:8
druidDataSource 数据源初始化连接数:0

程序看上去毫无问题,可是输出的结果却与自己设置的不同。我们再来打断点具体看一下:

可以看到,在yml文件中,对数据源的username、password、url和driverClass配置都是生效的。
再往下看:

yml文件中,设置的maxActive和maxWait明明是20和60000,在这里显示的却是默认的属性,这说明我们在yml文件中写的spring.datasource.druid配置并没有生效,抱着试一试的态度,我对yml文件进行了如下的修改:

spring:  datasource:    username: root    password: bugeinikan    url: jdbc:mysql://localhost:3306/2021summer?useUnicode=true&characterEncoding=utf-8    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

这时,idea就给我报出无法解析,如图:

不管它了,死马也要当活马医,我们启动测试程序,运行结果:

class com.alibaba.druid.pool.DruidDataSource
2021-09-24 16:19:45.095 INFO 11428 - [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
com.mysql.cj.jdbc.ConnectionImpl@67e25252
druidDataSource 数据源最大连接数:20
druidDataSource 数据源初始化连接数:5

这次输出的居然和我们配置的一样,在后面的断点测试中,各项属性也都和配置的一样。
不得不说,这次真是被idea坑惨了,刚开始以为是注入失败的问题,然后还查了很多资料。我的springboot版本是2.5.4,希望这个文章可以帮助那些和我一样踩坑的人。

看完上述内容,你们对如何解决springboot配置druid数据源不生效的问题有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

数据 数据源 配置 文件 问题 测试 最大 内容 结果 输出 代码 属性 程序 资料 不同 离谱 三个 容器 必不可少 态度 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器cpu是否支持avx 河北信息化软件开发过程品质保障 批量写数据库方法 杭州游卡网络技术有限公司网站 软件开发没用到数据库 嵌入式软件开发流程从先到后 浙江智能化软件开发市场报价 网络安全为什么是游戏 服务器板载管理口在什么地方 地平线零之曙光服务器推荐 软件开发各阶段产生的文档 互联网大会中国黑科技 北京现代化软件开发厂家报价 大学生网络安全考试预约时间 常用服务器安全搭配 dell塔式服务器本地安装 边缘网络技术安全才有意义 网众服务器修改ip 利亚德软件开发中心在哪 崩坏3的三个服务器有什么区别 衣之魅网络技术 信诚网络技术有限公司 评论 预防意外伤害网络安全教育 ec服务器什么时候更新 网络安全线上主题晚会怎么登陆 博学易知数据库评价 互联网科技的简介 网络安全怎么考职称 网络安全概念股新闻 网络安全人员老了还能干吗
0