千家信息网

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

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,今天就跟大家聊聊有关如何解决springboot配置druid数据源不生效的问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。pom文件如果你
千家信息网最后更新 2026年11月04日如何解决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安全错误 数据库的锁怎样保障安全 花魁咖啡 华服互联网科技靠谱吗 互联网与科技发展 互联网科技金融 万易互联网科技 苏州大垚互联网科技 上海卓越科技 互联网 左右互联网络科技 华服互联网科技官网 华夏互联网科技业 杭州壁岐互联网科技有限公司 用友工业互联网科技发展 特约风豹互联网科技为什么扣费 为客找房互联网科技公司怎么样 黑科技 体验场景 互联网大会 互联网科技年终奖 互联网时代科技型公司的机会 华人运通互联网科技公司 互联网企业和网络科技有限公司 高科技和互联网的现代国家 科技与互联网 碳银互联网科技 宁波青枫互联网科技有限公司 互联网系的金融科技公司 宁夏众和广鑫互联网科技有限公司 湖北码尼互联网科技有限公司电话 青岛科技大学互联网大赛研究生 互联网科技股为什么大涨 宁波跨境商互联网科技有限公司 兰石爱特工业互联网科技分公司
0