mybatis-plus: mapper-locations: “classpath*:/mapper/**/*.xml“配置!!!解释

和mybatis一样的道理!!!!如果不指定这个配置,通常要求 XML 映射文件和 Mapper 接口的包名和结构相同!!!!

如果没有配置 mapper-locations,通常文件结构应遵循如下约定:

复制代码
src
├── main
│   ├── java
│   │   └── com
│   │       └── example
│   │           └── mapper
│   │               └── UserMapper.java       # Mapper接口
│   └── resources
│       └── com
│           └── example
│               └── mapper
│                   └── UserMapper.xml       # XML文件

在 MyBatis-Plus 中,mapper-locations 用于指定 Mapper XML 文件的路径,MyBatis-Plus 会根据这个路径找到 XML 映射文件,并自动加载到应用程序中。

1. mapper-locations 的作用

mapper-locations 指定了 MyBatis-Plus 映射文件(*.xml 文件)的加载路径。MyBatis-Plus 会根据这个路径扫描并加载对应的 Mapper XML 文件,这些文件通常包含 SQL 语句(如 selectinsertupdatedelete)的定义,以及 resultMap 等映射关系。

2. 配置项详解

application.yml 文件中,可以通过如下配置来定义 mapper-locations

复制代码
mybatis-plus:
  mapper-locations: "classpath*:/mapper/**/*.xml"

在这里,配置了一个路径模式:

  • classpath*: 表示从类路径中搜索。
  • /mapper/**/*.xml 表示在 mapper 目录下,递归查找所有子目录中符合 *.xml 格式的文件。

例如,如果你的项目结构如下:

复制代码
src
└── main
    └── resources
        └── mapper
            ├── user
            │   └── UserMapper.xml
            └── product
                └── ProductMapper.xml

配置了 classpath*:/mapper/**/*.xml 后,MyBatis-Plus 会自动加载 mapper 文件夹中所有子文件夹(userproduct 等)中的 *.xml 文件。

3. 路径写法说明

不同路径写法的含义如下:

  • classpath:/mapper/*.xml :表示只加载 resources/mapper 文件夹下的所有 .xml 文件(不包括子文件夹)。
  • classpath*:/mapper/**/*.xml :表示递归查找 resources/mapper 文件夹及其所有子文件夹 下的 .xml 文件。
相关推荐
短剑重铸之日19 小时前
《深入解析JVM》第四章:JVM 调优
java·jvm·后端·面试·架构
whltaoin19 小时前
25年12月26日-福州某科技公司一面面试原题
java·linux·docker·面试·职场和发展·k8s·springboot
Yang-Never19 小时前
Android 内存泄漏 -> ViewModel持有Activity/Fragment导致的内存泄漏
android·java·开发语言·kotlin·android studio
fanruitian19 小时前
SpringBoot 调用springai ollama
java·spring boot·后端
蓝影铁哥19 小时前
浅谈5款Java微服务开发框架
java·linux·运维·开发语言·数据库·微服务·架构
sheji341619 小时前
【开题答辩全过程】以 小说阅读平台的设计为例,包含答辩的问题和答案
java
better_liang19 小时前
每日Java面试场景题知识点之-JVM
java·jvm·面试题·内存管理·性能调优·垃圾回收
IT 行者19 小时前
Spring Authorization Server 迁移至 Spring Security 7.0:变革与展望
java·数据库·spring
AscendKing19 小时前
java poi word首行插入文字
java·c#·word
鸽鸽程序猿19 小时前
【JavaEE】【SpringCloud】概述
java·spring cloud·java-ee