问题(Spring|问题:Spring boot 启动报错 Failed to auto-configure a DataSource)
今天完了一下mybatis的通用mapper,但是启动后报错。
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-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).
遂百度之,
参考https://blog.csdn.net/daxiang52/article/details/79420777
原理大概是,在pom中添加了数据库相关的依赖,当时没有配置数据源,所以启动的时候初始化数据源失败了,导致启动失败。
但是我的配置是没有问题的,application.yml中数据源神马的都配置好的。
后来我打开看了一下target文件夹,居然打包的时候maven没把application.yml拷贝过去。wtf,想了一下,是这段配置除了问题:
src/main/java
**/*.xml
src/main/resources
**/*.xml
**/*.properties
【问题(Spring|问题:Spring boot 启动报错 Failed to auto-configure a DataSource)】因为我直接把mapper.xml文件放在mapper接口的包里,然后些人maven的资源拷贝的。但是天杀的没有写.yml格式的,导致打包后没有appliation.yml,所以问题也就明了了。
所以出现这个问题有两种情况
1.添加了数据库相关组件,但是没有配置数据源,spring-boo启动时候自动配置失败。 解决办法:
需要在启动类的@EnableAutoConfiguration或@SpringBootApplication中添加exclude= {DataSourceAutoConfiguration.class},排除此类的autoconfig。启动以后就可以正常运行。
这是因为添加了数据库组件,所以autoconfig会去读取数据源配置,而我新建的项目还没有配置数据源,所以会导致异常出现。
2.资源拷贝的问题,检查一下打包后的target文件就可以看出来。 解决办法:
配置一下在文件maven打包的时候吧拷贝进去,如果出现application.yml存在但是读取有问题,多半是application.yml编码格式的问题,utf-8解决。
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- jhipster|jhipster 升级无效问题
- Activiti(一)SpringBoot2集成Activiti6
- “精神病患者”的角度问题
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- Hive常见问题汇总
- 姚老师互动问答会|姚老师互动问答会 # 问题001(如何更有智慧的和身边人分享金刚智慧())
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- 【教育故事】|【教育故事】 一个“问题学生”的蜕变