SpringBoot启动后,控制台报错:Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded…
先看看完整的错误信息:
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
Action:
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).
根据报错信息大概可以知道原因:
- .properties 或.xml 配置文件中未配置数据源信息
但是某些场景下创建的SpringBoot项目,并不需要配置数据库相关信息,即该项目不需要连接数据库。如我现在在用的,使用阿里云OOS作为文件存储服务器,需要一个模块集成OOS,则无需配置数据源。
那么这个错误的产生的具体原因是什么?
spring boot 会默认加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration这个类,
而DataSourceAutoConfiguration类使用了@Configuration注解向spring注入了dataSource bean,
又因为项目中并没有关于dataSource相关的配置信息,所以当spring创建dataSource bean时因缺少相关的信息就会报错。
**
解决办法:
**
- 在@SpringBootApplication注解上加上exclude,解除自动加载DataSourceAutoConfiguration
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
启动成功!