在一般的maven项目中都会把一些公共的模块,像用户,权限这些模块提取出来,但当细心的朋友可能就会发现,不做build配置的话,maven默认是把依赖的项目打成jar包,当mapperLocations查找mapper.xml时没办法找到这些jar包中的mapper <property name="mapperLocations" >
<list>
<value>classpath:/mybatis/**/com/**/*.xml</value>
</list>
</property>
如果有朋友跟我上面配置的相似的话,那么它的spring是不会去扫描jar包中的相应目录的,只会去他当前项目下获取。其实要改变这种情况很简单,在classpath后面加一个*号,*号的作用是让spring的扫描涉及全个目录包括jar <property name="mapperLocations" >
<list>
<value>classpath*:/mybatis/**/com/**/*.xml</value>
</list>
</property>
这样改之后,项目就能检测到配置文件了
<property name="mapperLocations" >
<list>
<value>classpath:/mybatis/**/com/**/*.xml</value>
</list>
</property>
<property name="mapperLocations" >
<list>
<value>classpath*:/mybatis/**/com/**/*.xml</value>
</list>
</property>