前言
之前开发Web项目一直是用eclipse来开发,IDEA也用过,但一直用它来写一些小项目(非web项目),今天突然想用IDEA来开发web项目,于是说干就干,场景:利用maven构建一个SSM项目。一顿配置操作后把项目构建成了,可当测试时却出现了问题,Mybatis的Mapper一直绑定不上,一直报错。
Bug
如图所示:
一直提示提示:Invalid bound statement (not found),意思为绑定语句错误,找不到该方法。
分析
因为之前一直用eclipse来开发,这个问题还是第一次遇到,首先我先想到是不是配置文件错误,于是把配置文件逐个排查,经过一系列测试排查,发现配置文件并没有错误。没问题后又对代码经过一系列的检查,可也还是没有发现问题。
猜想
正当我一筹莫展时,突然想到是不是IDEA把项目编译后那些xml配置文件存放的路径的问题,因为IDEA明确了源码和资源文件的放置位置(maven项目),也就是说源码就要会被编译,但当我把xml文件放在java目录下的mian目录中我猜想是不是没被编译到classes中,才导致找不到方法。
解决方法
在pom.xml的
1 | <resources> |
意思为:xml配置文件随同java编译后的class文件一同copy到相应的class目录
结果
经过测试果然和我猜想的一样,最后运行成功,方法成功被调用。
结言
eclipse编译项目会自动将xml配置文件编译进classes,IDEA却不行,看来还是对IDEA的使用不熟练,之前一直用eclipse开发,不经常用IDEA,突然换个开发工具出现了太多问题,还是不够熟练,革命还未胜利,同志还须再努力。