Junit启动测试mybatis xml文件BindingException: Invalid bound statement问题

发布时间 2023-04-20 21:04:01作者: JeykoYu

背景:1、正常启动,xml文件放在java目录和resource目录下均正常

   2、junit启动,xml文件放在resource目录下正常,放在java目录下报BindingException错误

mapperlocation绑定地址为:"classpath:com/a/b/**/*.xml"

 

原因就在于绑定的地址有问题。

 

junit生成的test-classes下的测试类test所在目录与classes所在目录相同 都存在com/a/b  

启动时首先会找test-classes下的xml,肯定找不到,则不会继续找

 

所以有两种解决方案:1、路径改为 "classpath*:com/a/b/**/*.xml" 第一个找不到会继续找

          2、路径改为 "classpath:com/a/b/c/*.xml"  写全路径

至于放在resource目录下可以找到,是因为xml文件只有在classes下面会存在,所以会顺着路径去找,"classpath:/mapper/**/*.xml"