spring-boot项目mapperBean找不到问题解决方案

使用spring-boot集成mybatis时遇到了加载不到mapper类文件bean的情况,网上找了最终终于解决了,我在这里分享一下整个排查的流程并把网上哪些方法都进行一下汇总。

错误截图:


上面这个截图是maven install的时候报出的,大概意思就是没有可用的ArticleMapper这个bean。



上面这个截图是启动boot项目时候报出的,也是说没有可用的ArticleMapper这个bean。


解决方法一:

spring-boot项目bean的创建是在启动时自动扫描创建的,默认扫描的位置是主启动类所在的包及子包。下面是我的项目结构截图,DemoApplication.java是我的主启动类,按照这个路径boot会扫描com.example下的所有文件。如果你的mapper文件所在位置不在这当中可以移过来看看问题是否解决。



解决方法二:

由于我的mapper文件在上面的路径下,所以我在主启动类文件上加入了@MapperScan("com.example.demo.mapper")注解。该注解的意思就是指定扫描mapper文件的位置,引号里是你mapper文件所在的位置。注意使用ide拷贝包路径的时候有的是使用“/”号分割的,需要改成“.”号。正常情况下你的mapper文件只要在解决方法一中正确的路径下就不会出现漏扫的情况,如果不在也可以使用这个方法去指定。



解决方法三:

仔细检查类名与自动注入时的名字是否相同。


在确定没有问题之后决定再去仔细看看错误,于是把启动报错往上拉发现还报出了找不到mapper.xml指定路径的错误。


检查配置文件中配置的路径发现确实路径写错了,这里的路径是从src/main/resources开始指定的,我这里少写了resources。加上重新clean、install,启动成功。



以上是我解决的整个流程,遇到问题还是得细心得看清楚问题得出处。不能因为看到bean没有找到就直接去纠结bean加载得问题。

猜你喜欢

转载自blog.csdn.net/HPLJAVA/article/details/80775557