情况
在写项目初始时,刚写完登录,准备运行看看,遇到了这个报错Field userMapper in com.xxx.back.service.impl.UserServiceImpl required a bean of type ‘com.xxx.back.dao.UserMapper’ that could not be found.
排查
大概可能有如下情况:
-
application.yaml中没有配置mapper路径
-
没有让springboot扫描到mapper
解决方法
第一种情况:
在yml中配置如下:
mybatis-plus: //用的mybatis就改为mybatis
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #??SQL?? 开启数据库日志打印
mapper-locations: classpath:com/xxx/back/dao/xml/*.xml #??mapper.xml
mapper-location: 用于配置mapper路径 路径位置要对应到mapper的xml文件
本项目中该文件位置,情况视具体而定:
最开始写的时候还忘了给UserMapper配置这个文件,内容如下、
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxx.back.dao.UserMapper">
</mapper>
第二种情况
选择一:在UserMapper上加上@Mapper注解
选择二:在启动类添加MapperScan注解
总结
纯属技术菜+不熟练+粗心大意