今天使用Spring Initializr创建Spring Boot项目并且选择了加上Mybatis的依赖,结果一试着启动就出现了问题
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
已经很明显的看出来,Mybatis没有找到它合适的配置源,也就是DataSource
而产生这种原因的错误便是
@EnableAutoConfiguration
要知道@EnableAutoConfiguration的作用便是会自动根据你jar包的依赖来自动进行配置。
也就是当你项目下面有SQLDB的依赖时,Spring Boot会创建默认的内存数据库的数据源DataSource,如果你自己创建了DataSource,Spring Boot就不会创建默认的DataSource。
所以我要做的就是停止让Spring Boot使用AutoConfiguration来进行自动配置,让mybatis用他自己的DataSource,解决方法如下:
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
放在今天这个情况便可以理解为,你用了Mybatis,它的配置文件中会指定数据库相关的参数,这个时候就用exclude={DataSourceAutoConfiguration.class},来让spring-boot不要根据Maven中依赖自动配置了,这样的话便不会产生冲突导致启动失败。