mybatis-plus的 mapper.xml 路径配置的坑
mybatis-plus今天遇到一个问题,就是mybatis 没有读取到mapper.xml 文件。
特此记录一下,问题如下:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.husy.mapper.SystemUserMapper.findUserByName
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod$SqlCommand.<init>(MybatisMapperMethod.java:242)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.<init>(MybatisMapperMethod.java:54)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedMapperMethod$0(MybatisMapperProxy.java:65)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedMapperMethod(MybatisMapperProxy.java:65)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:60)
at com.sun.proxy.$Proxy72.findUserByName(Unknown Source)
at com.husy.service.impl.SystemUserServiceImpl.findUserByName(SystemUserServiceImpl.java:23)
二:springboot项目中classpath路径到底指哪里?
1,一般springboot项目里classpath目录指的是resources文件夹
2,其他的javaweb项目都是指:
2.1、src不是classpath, WEB-INF/classes和lib才是classpath,WEB-INF/ 是资源目录, 客户端不能直接访问。
2.2、WEB-INF/classes目录存放src目录java文件编译之后的class文件,xml、properties等资源配置文件,这是一个定位资源的入口。
2.3、引用classpath路径下的文件,只需在文件名前加classpath:
<param-value>classpath:applicationContext-*.xml</param-value>
<!-- 引用其子目录下的文件,如 -->
<param-value>classpath:context/conf/controller.xml</param-value>
2.4、lib和classes同属classpath,两者的访问优先级为: lib>classes。
2.5、classpath 和 classpath* 区别:
classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找。
3,demo如下
三:现在是自己实际项目中的截图,第一次按照classpath*来配置ok,过了一段时间在本地前端调接口也是好好的,等放到服务器之后就报错了,错误信息看最上面,最后换成classpath:这种就好了;但是按照我的程序结构来看,即使classpath*也不应该报错,至于什么原因还不明确。