解决SpringBoot整合Mybatis扫描不到Mapper的问题

时间:2021-05-19

闲来无事,想学学springboot,开始搭建一个项目,但是一直显示mapper扫描不到的错误:

“Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘userController': Unsatisfied dependency expressed through field ‘userMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.minibike.bike.user.dao.UserMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}”

“Field userMapper in com.minibike.bike.user.controller.UserController required a bean of type ‘com.minibike.bike.user.dao.UserMapper' that could not be found.”

于是在网上找解决方案,都是治标不治本,不得不说现在的博客质量下降的厉害,太误导人了,打开好多个都是一样的内容,难道没人遇到的错误一样,连包名和类名也一样吗?有的人抄别人博客,类名和包名都懒得换一下?

最后解决方案是在Application.java主类上加注解@MapperScan(“com.minibike.bike.user.dao”)。括号中引号里边是mapper所在包路径。

加上注解后不再报错,也能正常输出oooo

第一次接触springboot,昨天下午到今早一直没找到问题所在,后来查文档、注解,然后不断尝试,最后终于解决。

当然这个只是我个人项目开发中遇到的问题解决办法,不一定通用,但是如过遇到这样的问题,也可以一试。

补充知识:springboot 项目配置扫描mapper接口类的两种方法

一种是在启动类上加@MapperScan({"com.**.dao","com.**.dao.*"}) 扫描mapper接口文件所在的包,多个包的时候用英文半角逗号隔开;

一种是在mapper接口文件上加@Mapper注解。如下

import org.apache.ibatis.annotations.Mapper;

以上这篇解决SpringBoot整合Mybatis扫描不到Mapper的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章