前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于maven项目src/main/java目录下mapper文件不生效的问题解决方法

关于maven项目src/main/java目录下mapper文件不生效的问题解决方法

原创
作者头像
yangk
发布2022-02-07 16:08:30
1.5K0
发布2022-02-07 16:08:30
举报
文章被收录于专栏:yk-javayk-java

​一、问题浮现:

在构建maven+mybatis项目时,遇到个问题,就是接口dao无法找到对应的mapper.xml文件,

项目结构及注解配置的均没有问题。但是调用接口就会发生异常,报找不到接口对应的mapper文件。查资料后,又把

代码语言:javascript
复制
mybatis.mapper-locations=classpath:com.yk.springsecuritydemo.mapper/*.xml

改为了

代码语言:javascript
复制
mybatis.mapper-locations=classpath:com/yk/springsecuritydemo/mapper/*.xml

还是不行。

于是我把sql直接写在了dao接口的方法上,这次竟然成功了!说明注解写的都没有问题,心里一万个不解。

后来忽然想起来是不是目录编译问题。

于是查资料发现,src/main/java目录默认只能编译java文件,src/main/resources目录才能编译配置文件。验证一下,把mapper.xml放到src/main/resources下,配置文件路径修改一下,重启项目,成功!

二、相关知识

maven项目目录结构:

src/main/java默认加载java文件,所以这个目录在开发时一般只放java文件。

src/main/resources目录放置项目中的各种配置文件及静态资源,如html页面、yml文件、properties文件、css文件、js文件、xml文件等。

下面再说说项目中经常用到的classpath:这个词

首先介绍一下maven项目打包后的目录:

src目录就是开发的代码都在这里面,target目录是编译文件输出目录。

可以看到,编译后src/main目录下的java目录和resources目录中的文件都到target/classes目录下了,其中,是src/main/java下的目录直接复制到了项目根目录,src/main/resources下面的文件也是全部复制到了项目的根目录下

了解完maven项目编译后各文件及包的存放规则就很容易知道classpath的意思了。

classpath的意思是项目根路径,也就是target/classes。

三、出现该问题的原因思考

但是默认情况下,src/main/java下的非java文件不会编译到target/classes/com/...对应的路径下,如下图:

编译完后发现,target/classes/com/yk/springsecuritydemo/mapper目录下没有UserInfoMapper.xml。这是因为src/main/java目录默认只能编译java文件,不能编译mapper.xml,所以一开始把mapper文件放在src/main/java目录下就会找不到mapper文件,但是放在src/main/resources目录下就能找到。

有人会问,我偏不想把mapper文件放在src/main/resources下,我就要放在src/main/java下,怎么办?

需要在pom.xml配置一下:

代码语言:javascript
复制
<build>  
    <resources>  
        <resource>  
            <directory>src/main/java</directory>  
            <includes>  
                <include>**/*.xml</include>  
            </includes>  
        </resource>  
    </resources>  
</build>

就可以把java路径下的xml文件编译到对应的class目录中了

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ​一、问题浮现:
    • 二、相关知识
    • 三、出现该问题的原因思考
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档