springboot中mybatis接口和.xml文件放不同包,遇到的Invalid bound statement (not found)問題

在項目中由於接口和xml文件有那麼一點點多,我打算分子包放,結果分了子包放入後報錯了,org.apache.ibatis.binding.BindingException: Invalid bound statement (not found),沒有發現接口中的方法,困擾了很久,一直覺得是接口沒有加載到spring中,當時跟蹤源碼,發現是有接口的,以爲是接口方法沒有加載,結果沒找到方法在哪兒加載的,然後不停的百度找方法,先是找了個mybatis的配置工具,主要是掃描配置文件中配置的mapper接口的路徑包,結果還是不行,昨天晚上終於想通了,報Invalid bound statement (not found)錯,不是說沒有發現接口中的方法,是接口中的方法沒有發現.關聯的xml文件,這兒想通了,就找到問題了,是application.properties中的mybatis.mapper-locations沒配置對,按照上圖中的實例層級,應該這樣配置mybatis.mapper-locations=classpath:mybatis/*/**/*.xml,其他配置,啓動類中配置,@MapperScan({"xxx.xxx.xxx.mapper"}),application.properties中mybatis.type-aliases-package=com.yld.quota.manage.mapper,mybatis.config-locations=classpath:mybatis/mybatis-config.xml,mapper接口中加註解@Mapper,這樣就可以了,主要是mybatis.mapper-locations路徑沒配置對。特此記錄,方便以後遇到類似問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章