当前位置: 首页 > news >正文

Beans模块之工厂模块注解模块@Qualifier

 

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌

博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦

🍅uniapp微信小程序🍅面试题软考题免费使用,还可以使用微信支付,扫码加群。由于维护成本问题得不到解决,可能将停止线上维护。

🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

Java项目案例《100套》
https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12173599.html

有需求代码永远写不完,而方法才是破解之道,抖音有实战视频课程,某马某千等培训都是2万左右,甚至广东有本科院校单单一年就得3万4年就12万学费,而且还没有包括吃饭的钱。所以很划算了。另外博客左侧有源码阅读专栏,对于求职有很大帮助,当然对于工作也是有指导意义等。在大城市求职,你面试来回一趟多多少少都在12块左右,而且一般不会一次性就通过,还得面试几家。而如果你对源码以及微服务等有深度认识,这无疑给你的面试添砖加瓦更上一层楼。

最后再送一句:最好是学会了,而不是学废了!!

2

在 Spring Framework 中,@Qualifier 是一个注解,用于解决自动装配(Autowiring)时的歧义性问题。当多个候选 bean 类型匹配时,@Qualifier 允许你明确指定要注入的 bean 的名称,以明确选择要注入的 bean。

通常情况下,Spring 的自动装配是按照类型进行匹配的。如果有多个具有相同类型的 bean 候选项可供注入,Spring 将无法确定要选择哪个 bean,这时就会出现歧义性。这时,@Qualifier 可以用来标识特定的 bean,以告诉 Spring 容器应该注入哪个具体的 bean。

以下是 @Qualifier 的使用示例:

@Component

public class FooService {

// ...

}



@Component

public class BarService {

// ...

}



@Service

public class MyService {

private final FooService fooService;

private final BarService barService;



@Autowired

public MyService(@Qualifier("fooService") FooService fooService,

@Qualifier("barService") BarService barService) {

this.fooService = fooService;

this.barService = barService;

}

}

在上述示例中,MyService 类的构造函数有两个参数,都需要注入类型为 FooService 和 BarService 的 bean。由于存在多个匹配的候选 bean,使用 @Qualifier 注解明确指定了要注入的 bean 的名称。

你还可以将 @Qualifier 注解与字段、方法参数上一起使用,以指定要注入的 bean 的名称。示例:

@Component

public class MyComponent {

@Autowired

@Qualifier("fooService")

private FooService fooService;



// ...

}

总之,@Qualifier 注解是 Spring Framework 中用于解决自动装配歧义性问题的一种方式。它允许你在多个候选 bean 类型匹配时,通过指定 bean 的名称来明确选择要注入的 bean。这对于处理复杂的依赖关系和确保正确的 bean 被注入非常有用。

3

相关文章:

  • 计算机组成原理和计算机网络常见单位分类及换算
  • 机器学习算法实战——天气数据分析(主页有源码)
  • 算法及数据结构系列 - 树
  • 「AI+办公」共学(四):办公综合应用
  • Python 打造高效开发辅助全能工具箱
  • mysql( 8.3.0) LISTAGG
  • 使用Multiprocessing模块创建子进程,需要放到__main__中
  • 【最后203篇系列】021 Q201再计划
  • 《慢慢变富》第三章 估值篇:价值的锚与安全边际
  • 广度优先搜索(BFS)完全解析:从原理到 Java 实战
  • 信创-人大金仓数据库创建
  • 昆仑技术重构AI大模型落地范式,长期作“加法”迎来国产生态化“拐点”
  • Performance Hub Active Report
  • 机器学习之KL散度推导
  • 审视单词:一个单词的10个维度
  • 1.8 函数的连续性和间断点
  • pdm self update 504 gateway timeout
  • PY32F002BW15U7TR
  • C#里使用libxl来合并单元格的例子
  • 深度学习PyTorch之动态计算图可视化 - 使用 torchviz 生成计算图
  • 独家丨刘家琨获普利兹克奖感言:守护原始的感悟力
  • 成都公积金新政征求意见:购买保障性住房最高贷款额度上浮50%
  • 司法部:建立行政执法监督企业联系点,推行行政执法监督员制度
  • 上海科创“八杰”赋能新兴产业链:硬核科技,形成良好盈利模式
  • 这个五月,有三部纪录电影值得一看
  • 巴基斯坦军方:印度导弹袭击已造成至少3死14伤