同事发给我一个项目,说启动时,报mapper无法注入,让我帮忙排查一下问题
记录一下我自己遇到这个问题的排查顺序
首先先排除以下问题:
1.mapper类是否加入到ioc容器中(有没有使用@Mapper标签),如果报错是service层,那就看看是不是没有添加server标签
2.检查项目是否扫描mapper类所在包的注解标签(检查mapper类是否在启动类所在包的子包下面)
3.检查引入的mapper标签是否正确,import org.apache.ibatis.annotations.Mapper
4.检查mapper.xml文件中的namespace与mapper接口文件的路径是否能对上
如果以上都能对上,就有可能是以下原因造成的
1.检查pom文件中是否引入mybatis依赖,Mapper标签是由mybatis提供的
2.检查pom文件中是否引入所需数据库的依赖
总结:
对于springboot项目来说,只要你的类是创建在启动类所在包的子包下,那么无论你在类中添加什么注解,它是都能够扫描到的(springboot的约定俗成),如果添加注解后还报这个错,我能想到的有以下两种原因:
一:是类没有在启动类所在包的子包下,这样springboot是没办法自动扫描到的,需要在启动类上添加MapperScan注解或者ComponentScan注解,然后指定路径,让ioc容器去扫描这个路径下的标签。
二:如果路径正确、注解正确,还是报这个错,那么就有可能是其他位置出错,需要检查pom文件、properties或者yml配置文件,比如我同事这个代码就是pom文件中没有引入相关数据库的依赖导致的
如果有大佬还有其他的原因能够补充,希望可以在评论区里交流交流,拜谢!!!
标签:Mapper,springboot,mapper,标签,required,pom,注解 From: https://www.cnblogs.com/sjzchf/p/17930084.html