Spring Boot 1 Consider defining a bean of type 'xxxxx' in your configuration
引起该问题的主要原因还是相关的注入失败导致的。从这方面着手的话解决的比较快些,至少对于常见的问题可以很快得到解决。
我这个是引入包冲突导致的,因为本人刚刚接触Spring Boot没有多久,导致出现了很多基础问题,解决也比较麻烦,请教很多人都得不到解决,还是根据网上一些人提的建议和思考解决的。
以下就是具体的信息:
项目目录结构:
Mapper的相关配置:
application.yml配置mybatis:
application程序入口注解:
Mapper接口类注解:
Mapper XML文件命名空间(命名空间要与UserMapper.java保持一致):
POM.XML文件:
问题描述:
使用STS启动应用时是正常的,可以运行起来;但是使用java -jar xxxx.jar方式运行的话就会出现以下错误:
解决方法:
首先根据网络上的一些相同、相似问题查看了解决方法,但是问题仍然解决不了。
后来,突然想到,前几天使用mobile的时候因为spring boot版本问题导致使用不了的情况,想想可能是版本导致的。
在网站 http://mvnrepository.com 上查找了 mybatis-spring-boot-starter 1.3.2版本的相关信息,查找结果是该包编译时依赖五个jar包,其中就有mybatis 和 mybatis-spring 两个包,如下图所示:
引入该mybatis-spring-boot-starter包会自动将相关依赖加载到项目中,而自己又使用到了 mybatis 和 mybatis-spring两个,导致包之间产生了冲突。
有人说直接将mybatis 和 mybatis-spring 移除掉即可。这样的话打包的时候就会报错,提示不识别 Mapper注解。
后来想着,既然冲突,自己又要使用两个包,那么只有降低版本,看看是否有版本不需要这个两个包做依赖的,很快问题得到解决。
最终,使用的是 mybatis-spring-boot-starter 1.0.2 版本,该版本的依赖关系如下图所示:
修改之后的 pom引入mybatis包如下图所示:
刚刚接触Spring Boot,如果有描述错误或者不当之处请指教,谢谢大家!