感谢https://www.cnblogs.com/javawxid/p/10949511.html
———————————————————————————
问题原因: Mybatis没有找到合适的加载类,其实是大部分spring - datasource - url没有加载成功,分析原因如下所示:
- DataSourceAutoConfiguration会自动加载
- 没有配置spring - datasource - url 属性
- spring - datasource - url 配置的地址格式有问题
- 配置 spring - datasource - url的文件没有加载
- resources文件没有标记为资源文件
方案一 (解决原因1)
排除此类的autoconfig。启动以后就可以正常运行。 @SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
@EnableEurekaClient
@MapperScan(basePackages = {"com.xm.goods.dao"})
public class GoodsApplication {
public static void main(String[] args) {
SpringApplication.run(GoodsApplication.class);
}
}
方案二 (解决原因2)
在application.properties/或者application.yml文件中没有添加数据库配置信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/xm_goods?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 123456
方案三 (解决原因3)
在spring xml配置文件中引用了数据库地址所以需要对:等进行转义处理.但是在application.properties/或者application.yml文件并不需要转义,错误和正确方法写在下面了.
//错误示例
spring.datasource.url = jdbc:mysql\://localhost:3306/xm_goods?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
//正确示例
spring.datasource.url = jdbc:mysql://localhost:3306/xm_goods?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
方案四 (解决原因4)
yml或者properties文件没有被扫描到,需要在pom文件中添加如下来保证文件都能正常被扫描到并且加载成功。
注意:注意配置文件路径
<!-- 注意文件路径 -->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
<include>**/*.yml</include>
</includes>
</resource>
</resources>
</build>
方案五 (解决原因5)
选中resources—》右键:Mark Directory as——》Resources Root