码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Spring的注解@Qualifier用法与简析


    1 基本说明

    使用@Qualifier可以分别为同样类型的Bean分别注入不同的依赖值

    在这里插入图片描述
    然后当我们@Autowired注入时就会出现异常,NoUniqueBeanDefinitionException, 以提示有多个满足条件的 bean 进行自动装配。程序无法正确做出判断使用哪一个。

      @Autowired
      private  TestService testService;
    
    
    2 @Qualifier 注解 可以解决上述问题
      @Autowired
      @Qualifier("testServiceImpl1")
      private  TestService testService;
    
      @Autowired
      @Qualifier("testServiceImpl2")
      private  TestService testService2;
    
    

    通过将 @Qualifier 注解与我们想要使用的特定 Spring bean 的名称一起进行装配,Spring 框架就能从多个相同类型并满足装配要求的 bean 中找到我们想要的.

    3 @Primary

    对同一个接口,可能会有几种不同的实现类,如这里的 TestServiceImpl2 与 TestServiceImpl1.

    @Service
    public class TestServiceImpl1 implements TestService{
        @Override
        public void test() {
            System.out.println("TestServiceImpl1 test 方法 ");
        }
    }
    
    import org.springframework.context.annotation.Primary;
    import org.springframework.stereotype.Service;
    
    @Service
    @Primary
    public class TestServiceImpl2 implements TestService{
        @Override
        public void test() {
            System.out.println("TestServiceImpl2 test 方法 ");
        }
    }
    
    

    在使用 @Autowired 注解进行对象注入时,就会默认加载TestServiceImpl2

      @Autowired
      private  TestService testService;
    

  • 相关阅读:
    【附源码】计算机毕业设计SSM图书馆信息管理系统
    计算机竞赛 题目: 基于深度学习的疲劳驾驶检测 深度学习
    2022谷粒商城学习笔记(五)文件上传功能
    副高级职称的要求真的很难达到吗?
    【达摩院OpenVI】开源体验AI云台,去视频抖动
    技术驱动的数字时代:探索Socks5代理在不同领域的应用
    QGIS安装与使用教程
    【云原生 • Kubernetes】kubernetes 核心技术 - Service
    自动驾驶之高精地图介绍
    MyBatis映射文件深入
  • 原文地址:https://blog.csdn.net/zl18603543572/article/details/127117857
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号