1、当我们在开发过程中,由于maven项目本身的限制,我们不能直接把我们的mapper.xml文件和对应mapper.java接口文件放到一起,也就是不能直接放在java包中,如图:在这在这里插入图片描述
2、因为maven项目在构建打包时,会从src/main/java中获取所有的java文件然后编译,会从src/main/resources中获取配置文件等其它文件,然后打包,
所以尽管你在Spring整合Mybatis时配置也好,在Mybatis单独的配置文件中配置也好,都是会出错的:
```java
<!--配置SqlSessionFactory工厂-->
<bean id="sqlSessonFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 扫描sql配置文件:mapper需要的xml文件 -->
<property name="mapperLocations" value="classpath*:com/ssm/mapper/mapping/*.xml" />
</bean>
<!--配置mapper接口所在包-->
<bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.ssm.mapper"/>
</bean>
都是不会成功的!
因为在idea中,默认情况下是不会去编译src/main/java下的xml文件的!!!
3、这个时候你可以改变一下maven在打包时的配置就可以实现了:
在pom.xml文件中添加配置:`<!--插件配置-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<!--包含了src/main/java目录下的所有xml资源配置文件-->
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<!--包含了src/main/resources目录下的所有资源配置文件,有别的格式的配置文件时,不要写成**/*.xml-->
<include>**/*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
`这个时候你就可以成功配置了!