电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Spring @Primary和@Qualifier注解原理解析

瀏覽:2日期:2023-09-10 13:22:46

一 前言

本篇內(nèi)容主要是講解2個重要的注解使用方式和場景,@Primary,@Qualifier注解;其作用就是消除bean注入時的歧義,能夠讓spring容器知道加載哪個bean;

知識追尋者(Inheriting the spirit of open source, Spreading technology knowledge;)

二 實現(xiàn)方式

如下示例中使用被單接口Sheet, 實現(xiàn)類為SheetA , SHeetB ; 由于注入容器時都是 Sheet類型,會發(fā)生異常,此時就是使用@Primary或者@Qualifier對注入的bean進行限制,即可實現(xiàn)正常注入;

2.1 被單接口

/** * @Author lsc * <p> 被單</p> */public interface Sheet { String getColor();}

2.2 被單實現(xiàn)類

實現(xiàn)類A

重寫getColor()方法;輸出red

/** * @Author lsc * <p> </p> */public class SheetA implements Sheet { public String getColor() { return 'red'; }}

實現(xiàn)類B

重寫getColor()方法;輸出pink

/** * @Author lsc * <p> </p> */public class SheetB implements Sheet { public String getColor() { return 'pink'; }}

2.3 配置類

@Configurationpublic class SheetConfig { @Bean public Sheet sheetA(){ return new SheetA(); } @Bean public Sheet sheetB(){ return new SheetB(); }}

2.4 測試類

/** * @Author lsc * <p> </p> */@RunWith(SpringJUnit4ClassRunner.class)//創(chuàng)建spring應用上下文@ContextConfiguration(classes= {SheetConfig.class})//加載配置類public class SheetTest { @Autowired Sheet sheet; @Test public void sheetTest(){ // System.out.println(sheet.getColor()); }}

測試會報異常,原因是向spring容器注入了2個Sheet,無法區(qū)分是SheetA 還是 SheetB,所以會造成bean的歧義問題;

Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException:

解決辦法一

在注入的bean上添加@Primary注解;示例如下,此時向sheetB上添加@Primary注解,spring掃碼注入bean時優(yōu)先注入帶有@Primary注解的bean;測試輸出結(jié)果為pink

@Bean@Primarypublic Sheet sheetB(){return new SheetB();}

解決辦法二

注入bean時添加@Qualifier注解,限定注入的Bean;此時輸出就是red

@Qualifier('sheetA')//限定注入Bean ID@AutowiredSheet sheet;

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 衢州装饰公司|装潢公司|办公楼装修|排屋装修|别墅装修-衢州佳盛装饰 | 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | 步入式高低温测试箱|海向仪器 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 熔体泵|换网器|熔体齿轮泵|熔体计量泵厂家-郑州巴特熔体泵有限公司 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | pH污水传感器电极,溶解氧电极传感器-上海科蓝仪表科技有限公司 | 合肥抖音SEO网站优化-网站建设-网络推广营销公司-百度爱采购-安徽企匠科技 | 莱州网络公司|莱州网站建设|莱州网站优化|莱州阿里巴巴-莱州唯佳网络科技有限公司 | 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 学生作文网_中小学生作文大全与写作指导 | 英语词典_成语词典_日语词典_法语词典_在线词典网 | 仿古建筑设计-仿古建筑施工-仿古建筑公司-汉匠古建筑设计院 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 上海公众号开发-公众号代运营公司-做公众号的公司企业服务商-咏熠软件 | 陕西华春网络科技股份有限公司| 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 刘秘书_你身边专业的工作范文写作小秘书 | 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 粒米特测控技术(上海)有限公司-测功机_减速机测试台_电机测试台 | 安驭邦官网-双向万能直角铣头,加工中心侧铣头,角度头[厂家直销] 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 菏泽商标注册_菏泽版权登记_商标申请代理_菏泽商标注册去哪里 | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 口信网(kousing.com) - 行业资讯_行业展会_行业培训_行业资料 | 重庆私家花园设计-别墅花园-庭院-景观设计-重庆彩木园林建设有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 合景一建-无尘车间设计施工_食品医药洁净车间工程装修总承包公司 | 钢托盘,铁托盘,钢制托盘,镀锌托盘,饲料托盘,钢托盘制造商-南京飞天金属13260753852 | 领袖户外_深度旅游、摄影旅游、小团慢旅行、驴友网 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | 厂厂乐-汇聚海量采购信息的B2B微营销平台-厂厂乐官网 | 嘉兴恒升声级计-湖南衡仪声级计-杭州爱华多功能声级计-上海邦沃仪器设备有限公司 | 圆形振动筛_圆筛_旋振筛_三次元振动筛-河南新乡德诚生产厂家 | 新能源汽车电机定转子合装机 - 电机维修设备 - 睿望达 | 加热制冷恒温循环器-加热制冷循环油浴-杭州庚雨仪器有限公司 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 |