解决办法:java
pom文件build下添加编译时加入xml和resource文件下的全部文件。mybatis
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*</include> </includes> </resource> </resources>
classpath:app
maven在编译打包时,会将src/main/java下的类打包至至target/classes,src/main/resources的文件复制(通常是资源文件,例如Spring的配置文件)到target/classes,src/test/java至target/test-classes,复制src/test/resources的文件至target/test-classes;这里也说明,上面第一个问题中,咱们为何要在pom文件中加入那几行了。否则运行时在classpath下找不到mapper文件啊T_Tmaven
maven项目的classpath在 target/classes/ , maven项目通常资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么java文件夹和resources文件夹在运行时就是classpath的真实位置( target/classes/ ), 因此 java和resources目录下的文件均可以当成在classpath路径下。运行过程当中能够经过如下代码来得到当前类的classpath路径:ui
类名.class.getClassLoader().getResource("").getPath();
classpath*:spa
classpath*,不单单包括在本项目的target/classes目录,还包括全部本项目引入的ja包里面的classes目录。code