什么时候用@MapperScan 注解?

简介: 什么时候用@MapperScan 注解?

hello,我是小索奇,给大家讲解一下MapperScan注解的用法。


@MapperScan 注解是 MyBatis 框架中的一个注解,它的主要作用是扫描指定包路径下的 Mapper 接口,将其注册为 Spring 的 Bean。这样,在使用 MyBatis 进行数据库操作时,就可以直接注入这些 Mapper 接口的实例,而不需要手动编写实现类。


以下是 @MapperScan 注解的一般用法和解释:

@Configuration
@MapperScan("com.example.mapper")
public class MyBatisConfig {
    // 配置类内容
}


  • @Configuration: 表明这是一个配置类。
  • @MapperScan("com.example.mapper"): 指定要扫描的包路径,该路径下的所有 Mapper 接口将被注册为 Spring Bean。


何时使用 @MapperScan 注解?


  1. MyBatis 集成 Spring: 当你使用 MyBatis 与 Spring 集成时,你需要让 Spring 知道哪些包下的 Mapper 接口需要被管理。这时就可以使用 @MapperScan 注解来指定需要扫描的包路径。
  2. 避免手动注册 Mapper Bean: 在没有使用 @MapperScan 注解的情况下,你需要手动在 Spring 配置文件中注册每个 Mapper 接口的实例。使用 @MapperScan 注解可以简化这个过程,让框架自动完成注册。
  3. 方便批量管理: 如果项目中有多个 Mapper 接口,并且它们都在相同的包路径下,使用 @MapperScan 注解可以一次性批量管理它们,避免一个个手动配置。


例子:

假设有一个项目结构如下:

com.example
|-- mapper
|   |-- UserMapper.java
|   |-- ProductMapper.java
|-- service
|-- controller


这样,com.example.mapper 包下的所有 Mapper 接口就会被扫描并注册为 Spring Bean。

@MapperScan 注解用于简化 MyBatis 与 Spring 整合时的配置工作,提高开发效率。


相关文章
|
IDE Java 编译器
浅析@SneakyThrows
在日常的开发中,相信你一定使用过Lombok,它是一款开源的可用于Java平台的代码生成库。我们在定义JavaBean的时候,会使用IDE自动生成构造方法、getter、setter、equals、hashCode、toString等方法,一旦类的属性有修改就要重新生成,通过使用Lambok的简单注解来精简代码就能达到消除冗长代码的目的。
954 0
浅析@SneakyThrows
|
9月前
|
自然语言处理 API 开发者
DeepSeek-Free-API:DeepSeekV3免费的api接口,需要使用api方式的同学可以参考一下这个项目,可以收藏起来试一下
嗨,大家好,我是小华同学。今天为大家介绍一个开源项目——DeepSeek V3 Free 服务。该项目基于 DeepSeek-V3 R1 大模型,提供免费、高性能的 API,支持高速流式输出、多轮对话、联网搜索和深度思考等功能。适用于智能客服、内容创作、教育辅助等场景。部署方式灵活,支持 Docker、Docker-compose、Render、Vercel 和原生部署。欢迎关注我们,获取更多优质开源项目和高效工作学习方法。
2624 15
|
JSON 监控 druid
Druid Spring Boot Starter
Druid 主页 https://github.com/alibaba/druid Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。 如何使用
2893 0
|
Java 测试技术 数据库连接
@Before 和 @BeforeClass 注释的区别
【8月更文挑战第22天】
890 0
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
27795 0
springboot整合mybatis-plus及mybatis-plus分页插件的使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis-Plus及其分页插件,包括依赖引入、配置文件编写、SQL表创建、Mapper层、Service层、Controller层的创建,以及分页插件的使用和数据展示HTML页面的编写。
springboot整合mybatis-plus及mybatis-plus分页插件的使用
|
存储 Java 测试技术
一文彻底搞懂阿里开源TransmittableThreadLocal的原理和使用
【10月更文挑战第2天】在Java多线程编程中,线程本地变量(ThreadLocal)是一个非常有用的工具,它能够在每个线程中保存一个独立的变量副本,从而避免多线程环境下的数据竞争问题。然而,在使用线程池等高级多线程技术时,ThreadLocal却面临着一些挑战。为了解决这个问题,阿里巴巴开源了TransmittableThreadLocal(TTL),它扩展了ThreadLocal的功能,使其能够在复杂的多线程环境中正确传递值。本文将深入探讨TTL的原理和使用,帮助读者彻底理解这一技术干货。
2006 0
|
SQL Java 关系型数据库
SpringBoot 系列之 MyBatis输出SQL日志
这篇文章介绍了如何在SpringBoot项目中通过MyBatis配置输出SQL日志,具体方法是在`application.yml`或`application.properties`中设置MyBatis的日志实现为`org.apache.ibatis.logging.stdout.StdOutImpl`来直接在控制台打印SQL日志。
SpringBoot 系列之 MyBatis输出SQL日志
|
开发者
如何画业务架构图
如何快速上手画业务架构图
11311 2
|
Java 关系型数据库 数据库连接
MyBatis-Plus介绍及Spring Boot 3集成指南
MyBatis-Plus是一个MyBatis扩展工具,旨在简化Java开发中的CRUD操作。它具有无侵入性、低损耗、强大的CRUD功能、Lambda表达式支持、主键自动生成、ActiveRecord模式、全局操作和内置代码生成器等特点。在Spring Boot 3中集成MyBatis-Plus,需在pom.xml添加依赖,排除特定版本的mybatis-spring,并用@MapperScan注解指定Mapper接口路径。此外,还介绍了如何使用MyBatis-Plus代码生成器自动生成Mapper、Model、Service和Controller层代码,以加速开发。
2955 2
MyBatis-Plus介绍及Spring Boot 3集成指南