随笔19. @MapperScan("com.atguigu.mapper")的作用

240 阅读1分钟

@MapperScan("com.atguigu.mapper") 是 MyBatis 框架中常用的注解,主要作用是指定 MyBatis 的 Mapper 接口 所在的包,使得 Spring Boot 能够自动扫描和注册这些接口。具体来说,它的作用包括以下几点:

1. 扫描指定包下的 Mapper 接口

  • @MapperScan 注解会扫描 com.atguigu.mapper 包下的所有 Mapper 接口,并将它们注册为 Spring 的 Bean。
  • Mapper 接口 是 MyBatis 中用来执行 SQL 操作的接口,通常与数据库中的表对应。

2. 自动生成实现类

  • MyBatis 不需要手动编写 Mapper 接口的实现类,@MapperScan 会自动为这些接口生成代理实现类,帮助你执行数据库操作。
  • 这些代理类通过你定义的 SQL 语句或者注解来执行具体的查询、插入、更新、删除等操作。

3. 简化配置

  • 在没有 @MapperScan 的情况下,通常每个 Mapper 接口都需要手动加上 @Mapper 注解,才能被 Spring 管理。使用 @MapperScan 后,指定的包下所有的 Mapper 接口都能被自动扫描和注册,减少了重复配置。

示例

假设你的 com.atguigu.mapper 包下有如下的 UserMapper 接口:

package com.atguigu.mapper;

public interface UserMapper {
    User selectById(int id);
}

通过 @MapperScan("com.atguigu.mapper"),MyBatis 会自动扫描这个包并将 UserMapper 注册为 Spring 的 Bean,这样你就可以在其他地方通过依赖注入的方式使用它,而不需要手动去实现 UserMapper

总结

@MapperScan("com.atguigu.mapper") 的主要作用是让 Spring Boot 自动扫描并注册指定包下的 MyBatis Mapper 接口,简化了数据库访问的配置和实现过程。