SpringBoot使用Mybatis时@Mapper与@MapperScan注解的区别

欣喜 MyBatis 发布时间:2025-04-01 11:21:49 阅读数:4531 1
下文笔者讲述SpringBoot中`@Mapper`和`@MapperScan`注解的功能简介说明,如下所示

`@Mapper`和`@MapperScan`注解简介

 
1.`@Mapper`注解
 功能
- `@Mapper`是MyBatis提供注解
   用于标识一个接口是一个MyBatis的Mapper接口
- Spring Boot会自动扫描
   并注册带有`@Mapper`注解接口为Spring容器中Bean

 特点
- 逐个声明:
   需要在每个Mapper接口上显式添加`@Mapper`注解
- 适合小型项目:
   当项目中Mapper接口较少时
     这种方式简单直观。
- 无需额外配置:
     Spring Boot会自动识别并注册这些接口

例
@Mapper
public interface UserMapper {
    User findById(int id);
}

 2.`@MapperScan`注解

 功能
- `@MapperScan`是MyBatis提供的注解
    用于批量扫描指定包下的所有Mapper接口
	  并将它们注册为 Spring 容器中Bean。
- 它可以替代逐个为每个Mapper 接口添加`@Mapper`注解方式

 特点 
- 批量扫描:
   通过指定包路径
     自动扫描该包及其子包下的所有 Mapper 接口。
- 适合大型项目:
   当项目中Mapper接口较多时
      这种方式更加高效。
- 集中管理:
    只需要在一个地方(通常是主类或配置类)声明扫描路径
	  便于维护

例
@SpringBootApplication
@MapperScan("com.java265.mapper") // 扫描 com.java265.mapper 包下的所有 Mapper 接口
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

`@Mapper`和`@MapperScan`注解区别

| 特性               | `@Mapper`                                | `@MapperScan`                          |
|------------------------|---------------------------------------------|-------------------------------------------|
| 作用范围           | 单个 Mapper 接口                            | 批量扫描多个 Mapper 接口                  |
| 使用方式           | 在每个 Mapper 接口上显式添加注解            | 在主类或配置类中声明扫描路径              |
| 适用场景           | 小型项目,Mapper 接口数量较少               | 大型项目,Mapper 接口数量较多             |
| 是否需要逐个声明   | 需要                                        | 不需要                                    |
| 维护成本           | 较高(每个接口都需要添加注解)              | 较低(集中管理扫描路径)                  |

`@Mapper`和`@MapperScan`注解相关总结

- `@Mapper`:
    适合小型项目
	  逐个声明 Mapper 接口,简单直观
- `@MapperScan`:适合大型项目
    集中管理 Mapper 接口的扫描路径
	  减少重复声明的工作量

在实际开发中
   笔者可根据项目的规模和需求选择合适的注解:
   当项目中有少量 Mapper 接口,
     笔者建议直接使用 `@Mapper`。
   当项目中有大量 Mapper 接口,
     笔者推荐使用 `@MapperScan` 来简化配置和维护。
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/MyBatis/202504/8421.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者