报错Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource coul

今天在使用微服务eureka的时候遇到这样一个错误,看报错的大概意思就是没有配置数据源。

原因:

看报错,就是字面意思,没能成功的配置数据源:url这个参数应该被配置

其实简单来说就是我集成了mybatis,但是我在配置eureka服务的时候并不会使用mybatis,即我没有配置mybatis必须要配置的东西。但是我在eureka模块的pom中并没有引入mybatis,最后才发现是pom继承了父类的pom,父类pom中引入了mybatis,并且有具体的版本号。

spring boot 会默认加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration这个类,

而DataSourceAutoConfiguration类使用了@Configuration注解向spring注入了dataSource bean,又因为项目(oss模块)中并没有关于dataSource相关的配置信息,所以当spring创建dataSource bean时因缺少相关的信息就会报错。

解决方案:

        一:简单粗暴把mybatis注释掉就可以了,不过我们写入父类就是为了方便子类继承他。所以第二种方案。

        二:在@SpringBootApplication启动类注解上加上exclude,解除自动加载DataSourceAutoConfiguration

package cn.itcase.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class EurekaApplication {
    public static void main(String[] args){
        SpringApplication.run(EurekaApplication.class,args);
    }
}

        三:第三种解决方案也是我觉得不错的方案。如图,父类pom的mybatis依赖本来是有具体的版本号,我们把版本号改成变量即可。子类使用时也不需要写版本号了。

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小白学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值