apring中@Primary和@Qualifier注解的区别

矩阵束(Matrix Pencil)入门:从通信系统到控制理论,它为何是建模利器? 本文深入探讨矩阵束(Matrix Pencil)在通信系统与控制理论中的关键作用,揭示其作为复杂系统建模利器的独特价值。从MIMO系统的多径干扰分析到电力系统稳定性判据,矩阵束通过`A-λB`方程求解提供精准建模方案,显著提升5G通信和工业控制等领域的性能表现。 阅读详情

首先说明一下两个注解的作用

@Primary:在众多相同的bean中,优先选择用@Primary注解的bean(该注解加在各个bean上)

@Qualifier:在众多相同的bean中,@Qualifier指定需要注入的bean(该注解跟随在@Autowired后)


下面一个小例子:

1.ServiceTest接口

public interface ServiceTest {
	void doSomething();
}
2.两个实现类

@Service("service1")
public class Service1 implements ServiceTest{

	@Override
	public void doSomething() {
		System.out.println("this is service1");
	}
	
}
@Service("service2")
public class Service2 implements ServiceTest{

	@Override
	public void doSomething() {
		System.out.println("this is service2");
	}

}

3  测试一

@Autowired
private ServiceTest serviceTest;
	     
@RequestMapping("showServiceTest")
public void showServiceTest(HttpServletRequest request, HttpServletResponse response) {
    this.serviceTest.doSomething();
}
启动报错
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'analysisTest': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.grac.web.controller.analysis.ServiceTest com.grac.web.controller.analysis.AnalysisTest.serviceTest; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [com.grac.web.controller.analysis.ServiceTest] is defined: expected single matching bean but found 2: service1,service2

4  测试二

	@Autowired
	@Qualifier("service2")
	private ServiceTest serviceTest;
	     
    @RequestMapping("showServiceTest")
    public void showServiceTest(HttpServletRequest request, HttpServletResponse response) {
        this.serviceTest.doSomething();
    }
控制台输出

this is service2


5  测试三
在service1上加入@Primary注解
@Service("service1")
@Primary
public class Service1 implements ServiceTest{

	@Override
	public void doSomething() {
		System.out.println("this is service1");
	}
	
}
	@Autowired
	private ServiceTest serviceTest;
	     
    @RequestMapping("showServiceTest")
    public void showServiceTest(HttpServletRequest request, HttpServletResponse response) {
        this.serviceTest.doSomething();
    }
控制台输出

this is service1











信创服务器(麒麟 V10 SP3)安装 NVIDIA GeForce RTX 5070 驱动 本文介绍了在麒麟V10 SP3系统上安装NVIDIA RTX 5070显卡驱动的详细步骤。首先需要关闭nouveau驱动,安装必要的编译环境和工具,确保内核版本与kernel-devel完全一致。最后运行NVIDIA驱动安装程序,关键选择包括启用DKMS支持、编译模块、禁用32位兼容和nouveau驱动。整个流程适用于海光CPU和Blackwell架构GPU的国产操作系统环境。 阅读详情

相关推荐

数据库1:数据库创建与管理(头歌云课)

在 Windows 系统中,可以直接通过 SQLServer 的应用程序连接数据库,不过很多时候在生产环境下,我们需要通过命令行来连接数据库。两个数据库,数据库名分别为 TestDb 和 MyDb 的数据库,注意先后顺序。为了完成本关任务,你需要掌握:1.如何在 Linux 系统中连接 SQLServer 数据库,2.如何创建数据库。连接的数据库是本地数据库,用户名是 sa ,密码是 '

weixin_60530224的博客 2314

Spring 注解 @Qualifier 详细解析

1. 概述 今天带你了解一下 Spring 框架中的 @Qualifier 注解,它解决了哪些问题,以及如何使用它。我们还将了解它与 @Primary 注解的不同之处。更多的技术解析请访问 felord.cn 2. 痛点 使用 @Autowired 注解是 Spring 依赖注入的绝好方法。但是有些场景下仅仅靠这个注解不足以让Spring知道到底要注入哪个 bean。默认情况下,@Autowi...

码农小胖哥 2655

LTspice导入德州仪器SPICE模型的实用指南与常见问题解析

本文详细介绍了如何在LTspice中导入德州仪器的SPICE模型,包括模型文件获取、路径管理、导入步骤及常见问题解析。通过实用指南帮助工程师精确仿真电路性能,提升设计效率,重点涵盖了第三方模型的导入教程和最佳实践。

kk1234的博客 308

Springboot注解@Primary与@Qualifier

@Primary

weixin_46955694的博客 719

避坑指南:ANSYS流固耦合计算中System Coupling数据传递设置与常见报错解决

本文深入解析ANSYS Workbench中System Coupling模块在双向流固耦合(FSI)计算中的应用,详细讲解数据传递机制、典型报错解决方案及高阶调试技巧。通过实际案例展示如何优化耦合步长、处理大变形问题,并提升并行计算效率,帮助工程师有效规避常见技术陷阱。

weixin_29213525的博客 726

菲涅尔波带片

菲涅尔波带片的简介,以及matlab绘制

Bestchinese的博客 1万+

@Qualifier多个类实现接口时,bean的实例化

我们想要将MyBean1注入到MyComponent类中,因此我们使用@Qualifier("bean1")注解来指定要注入的bean。当有多个bean都被标记为@Primary时,@Qualifier注解可以用来指定要注入的特定bean。需要注意的是,@Qualifier注解只有在与@Autowired注解一起使用时才有意义。这时就需要使用@Qualifier注解来指定要注入的bean。总之,@Qualifier注解是Spring中非常有用的一个注解,它可以帮助我们解决同一类型的多个bean注入的问题。

进化的深山猿 683

metaRTC嵌入式webrtc编译指南

metaRTC编译支持qmake和cmake,qmake使用QT最为方便,新版本新增了cmake支持。 ...

metaRTC的博客 9518

一个接口多个实现如何选择注入对应的Bean_@Primary_@Resource_@Qualifier_@ConditionalOnProperty

一个接口多个实现如何选择注入对应的Bean_@Primary_@Resource_@Qualifier_@ConditionalOnProperty

个人网站:https://www.longzipeng.online 1361

【3天快速入门WPF】11-附加属性

创建一个静态类,用于定义附加属性。使用方法注册附加属性。提供Get和Set方法来获取和设置附加属性的值。通过以上步骤,我们可以在WPF中轻松实现和使用附加属性。附加属性的主要用途包括为控件添加自定义行为、控制布局信息(如Grid.Row和)以及实现动态样式。

Zy100Papa的博客 679

Android 车载开发深度解析:CarPropertyManager 核心机制与实践指南

摘要: Android Automotive OS中,CarPropertyManager作为车载信息娱乐系统的核心组件,连接应用层与车辆硬件(如车速、油量等),其架构基于分层设计(App→CarAPI→VHAL→ECU),采用发布-订阅模式实现高效数据通信。通过HIDL/AIDL跨进程交互及共享内存优化,延迟可降至2ms以下。安全机制包括分级权限控制(VISIBLE/PROTECTED/SYSTEM_RESTRICTED)和HMAC防篡改。开发时需注意监听器生命周期管理、事件合并降负载及低功耗适配。

郑伟强dev的专栏 344

Spring源码之@Qualified注解

spring源码之@Qualified注解解析

何忆清风 1443

基于GELAN模块的YOLOv8改进-C2f结构替换与轻量化与高效涨点优化研究

本文详细探讨了在YOLOv8架构中利用YOLOv9的GELAN模块替换C2f结构的改进方法。轻量化版本在资源受限的场景中具有显著的推理效率提升,适用于边缘设备和移动端应用。高效涨点版本则在检测精度上实现了大幅突破,特别适合高精度要求的任务。实验结果显示,GELAN模块相比原C2f模块,在参数量与计算量间取得了更好的平衡,同时提升了检测性能。此外,本文还展示了结构图、训练代码和部署优化方案,为研究者和开发者提供了实践参考。

博客 1435

Qualifier注解

字面理解 首先,字面意思,显然它是单词Qualify的一个变形,把y改i加er。Qualify是质量的意思。而Qualifier有合格者的意思。 合格者在这里有啥意思,显然,翻译之后我更困惑了。【检查这个参数是否合格?标准是啥?在哪检查?不合格会咋样? 代码层面 显然我薄弱的语文水平,领悟不到其中的深意。还是看代码吧。 Qualifier注解= 以下四个注解 @Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMET

doordiey的博客 5809

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

@qualifier注解_Spring Annotations每日一解系列之@Qualifier

在上一篇 Spring Annotations #@Autowired中,介绍了使用@Autowired完成自动注入的使用方式,在默认情况下,Spring Framework是根据类型来解析@Autowired所注释的类,如果在Spring的容器中存在多个同种类型的Bean时,Spring Framework将无法完成依赖注入工作。原因是Spring Framework无法完成二选一或者N选一的工...

weixin_39879651的博客 1670

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Spring中@Primary注解

1.概述 讨论Spring的@Primary注解,该注解是框架在3.0版中引入的。 其作用与功能,当有多个相同类型的bean时,使用@Primary来赋予bean更高的优先级。 2.为什么需要@Primary? 在某些情况下,需要注册多个相同类型的bean。 在此示例中,有Employee类型的zhangSanEmployee()和liSiEmployee()Bean: @Configuration public class PrimaryConfig { @Bean public Empl

盲目的拾荒者的博客 7万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Spring之@Qualifier注解

作用于方法上、作用于类上等于给bean添加了一个alias,作用于属性上、作用于参数上时等于属性注入,然后属性注入的时候既可以使用beanName,也可以使用alias。作用于注解上比较特殊,如果作用于方法上、作用于类上时用了包装注解,作用于属性上、作用于参数上也必须使用包装注解,否则只能使用beanName,使用alias会报错。当我们注入的依赖存在多个候选者,我们得使用一些方法来筛选出唯一候选者,否则就会抛出异常。从源码中我们知道这个注解可以作用于属性、方法、参数、类、注解上面。

好记性不如烂笔头 8232

【spring】@Qualifier注解

1.可以创建一个自定义注解,并在该注解上使用@Qualifier注解来将其标记为限定符注解。2.可以在bean定义和注入时使用这个自定义限定符注解。

王佑辉的博客 1409

@Primary和@Qualifier注解

@Primary注解 使用@Autowired注解执行注入时,默认是byType,当Spring容器中存在多个相同类型的Bean实例时,@Primary注解可以添加在类上,指定优先注入的Bean实例。 @Bean @Primary public Employee johnEmployee() { return new Employee("john"); } ...

u012556047的博客 971

@Primary 和 @Qualifier

问题 当一个接口有2个不同实现时,使用@Autowired注解时会报org.springframework.beans.factory.NoUniqueBeanDefinitionException异常信息 解决 (1)使用Qualifier注解,选择一个对象的名称,通常比较常用 (2)Primary可以理解为默认优先选择,不可以同时设置多个,内部实质是设置BeanDefinition的p...

tom和cat的博客 1万+

注解详解系列 - @Primary:优先选择的Bean

在今天的注解详解系列中,我们将探讨@Primary注解。@Primary是Spring框架中的一个重要注解,用于在有多个候选Bean时指定首选的Bean。通过@Primary注解,可以明确地告诉Spring容器在注入依赖时选择哪个Bean。@Primary注解用于指定当有多个候选Bean时,首选的Bean。它通常应用于类级别或方法级别,通常与@Component@Service@Bean等注解一起使用。

算命de博客 2800

@Primary注解的使用方法和作用

Primary注解是Java语言中的一个内置注解,它用于指示一个类、方法或字段作为首选的候选对象。当应用于类时,@Primary注解表示该类是首选的候选对象,将优先被实例化。当应用于方法时,@Primary注解表示该方法是最优选的候选方法,将优先被调用。当应用于字段时,@Primary注解表示该字段是最优选的候选字段,将优先被访问。

LSW1737554365的博客 8945

Spring 注解 @Qualifier和@Primary 详细解析

1. 概述 Spring框架中的@Qualifier注解和@primary注解,它解决了哪些问题,以及如何使用它。我们还将了解它与@Primary注解的不同之处。 2. 痛点 使用@Autowired注解是Spring依赖注入的绝好方法。但是有些场景下仅仅靠这个注解不足以让Spring知道到底要注入哪个bean。默认情况下,@Autowired按类型装配Spring Bean。如果容器中有多个相同类型的bean,则框架将抛出NoUniqueBeanDefinition...

u010327957的博客 4677

@Qualifier和@Primary

Qualifier 和 @Primary 注解是 Spring Framework 中用于解决依赖注入歧义性的两种方式。

weixin_44145526的博客 751

spring中的@Primary注解详解

@Primary是Spring依赖注入中解决多Bean冲突的轻量级工具,通过标记默认实现简化配置逻辑。其核心价值在于降低代码复杂度与提升可维护性,适用于需要统一默认行为的场景。开发者需结合具体需求,在@Primary与@Qualifier间合理选择,并辅以测试保障注入逻辑的正确性。

技术人集结地 2014

@Primary注解

Primary的作用就是当有多个相同类型的bean时,使用@Primary来赋予bean更高的优先级。比如Spring IOC容器中有多个相同类型的bean时,当要注入该类型的bean,就可以用@Primary来标注注入bean的优先,优先级高的bean先被注入。

qq_36488864的博客 1064
上一篇: windows下kafka的安装和使用
下一篇: Yaml简易学习
Tracyclock
博客等级 码龄10年 14粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值