前言
当我们在开发过程中,由于maven项目本身的限制,我们不能直接把我们的mapper.xml文件和对应mapper.java接口文件放到一起,也就是不能直接放在java包中,如图:
因为maven项目在构建打包时,会从src/main/java中获取所有的java文件然后编译,会从src/main/resources中获取配置文件等其它文件,然后打包,
所以尽管你在Spring整合Mybatis时配置也好,在Mybatis单独的配置文件中配置也好,都是会出错的:
<!--配置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>
都是不会成功的!
方法:
这个时候你可以改变一下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>
这个时候你就可以成功配置了!
附录:
感谢以下博客:
https://blog.csdn.net/qq_38727626/article/details/81431522
还有就是:
其实下面这篇博客写的也挺好,但是我发生报错,就是你的resources目录下的文件可能会出问题,
https://blog.csdn.net/weixin_30820077/article/details/97407662