SpringBoot项目踩过的坑(一)
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)
启动成功!