【bug日志】spring boot项目启动,报错Failed to configure a DataSource: ‘url‘ attribute is not specified and no

文章讲述了在SpringBoot项目中使用MyBatis时,遇到启动时数据源配置错误的问题。通过在`@SpringBootApplication`注解中添加`exclude=DataSourceAutoConfiguration.class`,解决了框架自动识别为多数据源导致的配置混乱。作者强调了单数据源与多数据源配置的区别,并提供了相应的YAML示例。
摘要由CSDN通过智能技术生成

【问题详情】

引入:spring boot mybatis,也在application.yml做了相关数据源配置

 项目在启动的时候,报错,具体错误如下:

从错误描述来看,应该是数据源配置和加载地方有问题。项目中目前使用的其实也是单数据源,按道理不应用该出现此问题。猜测当前可能是框架,把数据源识别为多数据源,DataSourceAutoConfiguration.calss 在自动配置,数据源逆乱导致的。

【解决方法】

注解里添加exclude = DataSourceAutoConfiguration.class 参数,问题解决

 【深入解析】

默认spring boot框架中, DataSourceAutoConfiguration.class会自动查找application.yml或者properties文件里的spring.datasource.*相关属性并自动配置单数据源,但如果在项目中使用多数据源或项目是多模块(启动项),就需要排除该自动注入数据源配置类。在项目启动处加上@SpringBootApplication(exclude={DataSourceAutoConfiguration.calss})

DataSourceAutoConfiguration.class默认会帮我们自动配置单数据源,所以,如果想在项目中使用多数据源就需要排除它,手动指定多数据源。

该注解的作用是,排除自动注入数据源的配置(取消数据库配置),在springBoot中使用多数据源时,加上@SpringBootApplication(exclude={DataSourceAutoConfiguration.calss})
 

单数据源和多数据源配置有些不同。

注意 单数据源 中****application.yml为:

spring:

datasource:

name: test

url: jdbc:mysql:/10.10.10.23:3306/estserverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF8

username: test

password: test

此时springBoot 中的注解应该是@SpringBootApplication

如果springBoot 中要加上@SpringBootApplication(exclude={DataSourceAutoConfiguration.calss})

application.yml为

spring:

datasource:

default:

name: test

url: jdbc:mysql:/10.10.10.23:3306/estserverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF8

username: test

password: test
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值