@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 接口,简化了数据库访问的配置和实现过程。