测试SpringBoot的时候报错mapper未装载的解决方案:

这篇具有很好参考价值的文章主要介绍了测试SpringBoot的时候报错mapper未装载的解决方案:。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.报错信息和截图:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.tang.testspringboot.TestSpringBootApplicationTests': Unsatisfied dependency expressed through field 'mapper': No qualifying bean of type 'com.tang.mapper.Mapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.tang.mapper.Mapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

测试SpringBoot的时候报错mapper未装载的解决方案:,spring boot,java,spring

已经把springboot的所有的依赖准备好了,mapper也写好了,在测试的时候报上面的错。

2.分析过程:

2.1SpringBoot装载类的机制:

看报错的意思是这个mapper的类没有放到springboot的容器里面,从spring的学习中应该知道,在注解方式的spring开发中只有一种方式将类放到容器里面,这种在spring的容器的配置类中直接开启一个ComponentScan扫描的注解,它会去扫描我们标记了@controller @Reposity @Service注解的这些类,从而把类放到容器中,最开始是不用扫,是我们把类的名字写到我们的bean文件里面即可。正好springboot也是这种机制,SpringBoot启动类上面的@SpringBootApplication里面有一个@ComponentScan,它可以扫描启动类同级及其子级包下的所有文件,并且把带有@Component、@Repository、@Service、@Controller的类注册到Spring容器。

@Component、@Repository、@Service、@Controller、@ComponentScan是Spring注解
所以@ComponentScan只能扫描@Component、@Repository、@Service、@Controller

@Mapper、@MapperScan是Mybatis注解,所以@MapperScan只能扫描@Mapper,所以要是在Mapper层要是使用了@Mapper注解,那么SpringBoot的@ComponentScan是扫描不到的,必须在启动类上面加上@MapperScan扫描。

2.2解决方案:

后面查我的Mapper类的代码,我发现mapper的代码我是用@Mapper来标准的,所以这样@ComponentScan扫描不到我们的Mapper类,那么我们就得在启动类上加上一个@MapperScan("com.xxx.mapper")即可解决问题。

测试SpringBoot的时候报错mapper未装载的解决方案:,spring boot,java,spring

测试SpringBoot的时候报错mapper未装载的解决方案:,spring boot,java,spring

等于说这个testSpringBoot里面这个TestSpringBootApplication这个类是和下面的test的类对应的

所以在这个TestSpringBootApplication下一定要加上一个@MapperScan

测试SpringBoot的时候报错mapper未装载的解决方案:,spring boot,java,spring

2.3解决后结果截图

测试SpringBoot的时候报错mapper未装载的解决方案:,spring boot,java,spring文章来源地址https://www.toymoban.com/news/detail-805183.html

到了这里,关于测试SpringBoot的时候报错mapper未装载的解决方案:的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包