• @Autowired @Resource @Qualifier的区别


    @Autowired@Resource@Qualifier 是在Spring框架中用于管理依赖注入和连接Bean的常用注解,它们各自有不同的用途:

    • @Autowired 主要用于基于类型的注入。
    • @Resource 用于基于名称的注入,不仅限于Spring。
    • @Qualifier 用于在存在多个相同类型的Bean可供注入时,指定Bean的名称或标识符,通常与 @Autowired@Resource 结合使用来解决歧义问题。
    1. @Autowired
      • @Autowired 是Spring特有的注解,用于自动依赖注入。当你将字段、构造函数或setter方法标记为 @Autowired 时,Spring会自动根据类型来解析和注入适当的Bean。
      • 如果存在多个相同类型的Bean,Spring 可能不知道应该注入哪个,因此你可能需要在 @Autowired 旁边使用 @Qualifier,以指定Bean的名称。

    示例:

    @Autowired
    private SomeService someService;
    
    • 1
    • 2
    1. @Resource
      • @Resource 是标准的Java EE注解,但也被Spring支持。它用于按名称进行依赖注入。你可以使用 @Resource 标注字段、setter方法或构造函数参数,并指定要注入的Bean的名称。
      • @Autowired 不同,@Resource 允许按名称进行注入,并且可以用于从Spring之外的其他框架或资源中注入依赖项。

    示例:

    @Resource(name = "someServiceBean")
    private SomeService someService;
    
    • 1
    • 2
    1. @Qualifier
      • @Qualifier 常常与 @Autowired@Resource 结合使用,当存在多个相同类型的Bean可供注入时,你可以使用 @Qualifier 来指定要使用的Bean。
      • 通过使用 @Qualifier,你提供了一个唯一的标识符(通常是Bean的名称),以消除哪个Bean应该被注入的歧义。

    带有 @Autowired@Qualifier 的示例:

    @Autowired
    @Qualifier("someServiceBean")
    private SomeService someService;
    
    • 1
    • 2
    • 3
  • 相关阅读:
    了解面向对象
    java-php-python-ssm-乌托邦宿舍管理系统2021计算机毕业设计
    【JVM基础】虚拟机栈
    [SwiftUI 开发] Combine使用方法
    [newstarctf2023] --RE wp
    USART串口协议
    Codeforces Round #813 (Div. 2)
    简单上手Vuex
    深度剖析「圈组」关系系统设计 | 「圈组」技术系列文章
    786. 第k个数
  • 原文地址:https://blog.csdn.net/qq_27575627/article/details/133359780