@Component,@ComponentScan,@MapperScan注解

这三个注解通常用于在 Spring 框架中配置和启用组件扫描和数据库映射。让我们逐个解释它们的作用:

1. @Component

@Component
public class Main {
    // class implementation
}
  • @Component 是 Spring 框架的核心注解之一,它用于将 Java 类标识为 Spring 托管的组件。被 @Component 注解标记的类会被 Spring 自动扫描并注册为 Spring 应用上下文中的 Bean。这样,你就可以在应用程序的其他部分使用这些 Bean。

2. @ComponentScan

@ComponentScan(basePackages = "com.example.demo")
  • @ComponentScan 注解用于配置 Spring 在启动时要扫描的包路径。它告诉 Spring 去哪些包下面查找 @Component 注解(以及其派生注解如 @Repository@Service@Controller 等),并将其注册为 Spring Bean。在上面的示例中,指定了 com.example.demo 作为扫描的根包路径,Spring 将扫描该包及其子包中的组件。

记住与@SpringBootApplication注解有冲突

3. @MapperScan

@MapperScan("com.example.demo.mapper")
  • @MapperScan 是 MyBatis 框架中的注解,用于指定 MyBatis 的 Mapper 接口所在的包路径。MyBatis 是一个持久层框架,它通过 @MapperScan 注解告诉 Spring 在启动时去指定的包路径下查找 MyBatis 的 Mapper 接口,并自动创建对应的 Mapper Bean,以便在其他地方注入和使用这些 Mapper 接口。

综上所述:

  • @Component 用于将 Java 类标记为 Spring 组件,让 Spring 可以管理和使用这些组件。
  • @ComponentScan 用于配置 Spring 在启动时要扫描的包路径,以便找到和注册标记为 @Component 的类。
  • @MapperScan 用于配置 MyBatis 框架的 Mapper 接口所在的包路径,使得这些 Mapper 接口能够在 Spring 中被正确注册和使用。

这些注解在 Spring 应用程序中通常结合使用,以便自动化地配置和管理组件和持久层的映射。

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
@MapperScan和@ComponentScan都是用于扫描包的注解,但是它们有一些区别。 @MapperScan注解用于扫描Mapper接口所在的包,并生成相应的接口实现类。在持久层的接口上添加@Mapper注解后,编译时会生成对应的接口实现类。为了避免在每个接口上都添加@Mapper注解,可以使用@MapperScan注解来指定要编译成接口实现类的包路径。在编译完成后,该包下的所有接口都会生成相应的接口实现类。这样可以简化代码的编写。 @ComponentScan注解是用于自动扫描包路径下的@Controller、@Service、@Repository、@Component注解标注的类,并将这些类装配到Spring容器中。通过@ComponentScan注解,可以自动将符合扫描规则的类注入到Spring容器中,方便进行依赖注入和其他操作。 它们的主要区别在于扫描的注解和目的不同。@MapperScan主要用于扫描Mapper接口并生成对应的实现类,而@ComponentScan主要用于扫描带有特定注解的类并装配到Spring容器中。 总结起来,@MapperScan注解用于扫描Mapper接口的包并生成接口实现类,而@ComponentScan注解用于扫描带有特定注解的类并装配到Spring容器中。它们可以同时使用,但需要注意扫描的包路径不能重叠,避免产生错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [@MapperScan和@ComponentScan的区别](https://blog.csdn.net/m0_37597572/article/details/82625631)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [@MapperScan和@ComponentScan使用问题](https://blog.csdn.net/weixin_45948234/article/details/110954215)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超维Ai编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值