将*mapper.xml迁移到src下导致mapper与id绑定失败的问题

背景描述

最近在写项目时因为用spring cloud alibaba时,由于src中modules下有多个mapper,在将以前的mapper.xml放在resources下没那么方便查找;就想着把xml也方在对应的modules下方便开发管理;

mybatis-plus: 
  # 将原有的配置注释 调整为下面的配置
  # mapper-locations: classpath:/mapper/**/*.xml
  mapper-locations: classpath:com/xxx/modules/*/mapper/*.xml

报错如下截图
将*mapper.xml迁移到src下导致mapper与id绑定失败的问题_第1张图片
发现还是不对一致困扰了我很久,一致以为是 mapper-locations 后的位置不对,但是怎么调整都没有找到原因,还是妥协暂时将xml放在resources目录下;第二天突然想着看target下编译是否成功,发现target编译下压根就没有xml,自此困扰我一天的问题终于找到原因

问题解决

要解决在项目中,把src编译下的xml编译到target中就很简单了

 <build>
        
        <resources>
            <resource>
                <directory>src/main/javadirectory>
                <includes>
                    <include>**/*.xmlinclude>
                includes>
                
                <filtering>falsefiltering>
            resource>

            <resource>
                    <directory>
                    src/main/resources
                directory>
            resource>
        resources>
    build>

打完收工

彩蛋

classpath:与classpath*:的区别
classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找

你可能感兴趣的:(踩坑记,xml,java,spring,cloud,后端)