搭建springmvc项目没扫描到mapper和service

严重: Servlet.service() for servlet [spring] in context with path [/springmvc-demo] threw exception
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.qiuj.listshow.service.UserEasyDataService.getByLoginName

 

根据控制台报的错误是说没扫描到我的service,但是我尝试着 如果调用service的方法放在免登陆的之后就可以扫描到,因此觉得是不是配置文件里的哪个配置顺序错了。

经过各种排列组合的尝试,找到了。

图中可见我的文件目录,我是在security的配置文件里又importspring-*.xml文件的,原以为配置文件的执行顺序是看到import应该是先把import走完,再接着走security的文件下面,就像我们常用的debug模式,按照顺序执行,但是我原来的扫描注解的配置是在spring的配置里的,那顺序应该就是看到import文件,但是不走进去,先标记,走完security文件,再接着走import的文件,导致service文件还没扫描,就被调用了。

所以要注意配置文件的顺序。

还有一种解决办法是将security、spring、文件完全分离开,再按照顺序import。

同时,

<mvc:annotation-driven />
<context:component-scan base-package="xxx"/>

先后顺序也要注意。

原文地址:https://www.cnblogs.com/qiujiababy/p/8607486.html