Resource引发的报错

事出有因:

一个正常运行的项目再次运行的时候突然报错:

Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.

Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

//无法配置数据库,没有指定url属性,并且无法配置embedded datasource
//如果如果需要加载嵌入式的数据库,请将他放入路径中**//如果有数据库设置需要从指定配置文件中加载,需要调用该配置文件(目前没有活动的配置文件)*

这是一个很经典、也很入门的初级错误,说明你的配置文件中没有数据源相关的配置,在yml或properties中引入相关配置即可,但是,话说回来,我这是一个正常运行的项目突然报错说我没有相关配置,这不科学啊。

既然出现了这个问题,有三种可能:

  • 上文说的,没有配置数据源
  • 数据源配置错误,可检查配置文件语法格式(yml)
  • 配置文件在maven工程中属于Resource文件,那么最后一种可能就是IDEA没有识别Resource目录
我的解决方案:

首先清除IDEA的缓存,重新导入工程。

Resource右键工程,Mark Drectory as --> Resource Root

将Resource文件夹设置资源文件夹。

网上还有一种解决方案是:

Spring boot的启动引导类上增加@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}),阻止Spring boot自动注入dataSource。我认为这种方案不可取。

原因:

该注解的作用是,排除自动注入数据源的配置(取消数据库配置),不去读取数据库,也就是无法操作数据库,这种选择在微服务中,可以作为消费者的配置,消费者去调用生产者的服务,生产者去与数据库交互。当然,在单体应用、或者是微服务的生产者中,必须使用数据库、就不能使用这种方案,所以该方案有一定的局限性,不可取。

在maven打包时遇到奇奇怪怪的报错,以上解决方案可用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值