有时候我们在写一个springboot项目时,mapper.xml文件不需要放入/resource/文件目录下,需要放入java目录下时,例如:
此时我将接口与mapper.xml文件放入同一目录下,启动项目 会出现下面的报错,提示你绑定错误,
当我们检查接口发现,mapper中的方法与接口中的方法对应无误和配置文件路径无误时,我们此时检查target文件,是否有这个UserDao.xml文件
我们能发现在编译后的文件中,没有这个文件,故我们也能理解,为啥接口中的方法与mapper对应无误,却绑定不上,原来编译后没有这个mapper文件怎么会绑定的上!
这是为什么呢? 原来当我们启动项目时,系统扫描不到java目录下的xml文件,因为我们默认放在resource目录下 …
那么我们怎么解决这个问题呢?
只需要在maven 中告诉 idea ,帮我们扫描java下的xml文件即可
<resources>
<!--由于maven原因在应用启动时,不会扫描/java/..路径下的xml文件,所以我们的mapper
文件写在java路径下不会扫描的到,故会绑定失败-->
<resource>
<!--扫描该路径下的所有xml文件-->
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<!--手动添加 ,将resources下的别忘了扫描-->
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
[参考博客]
(https://blog.csdn.net/qq_33418407/article/details/105119209)