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

合优网合川找工作求职招聘上海seo外包

合优网合川找工作求职招聘,上海seo外包,网站建设有什么品牌,网站处于建设中会显示什么英文目录 1. 概述 2. 痛点 3. Qualifier 4. Qualifier VS Primary 5. 通过名称来自动注入 1. 概述 今天带你了解一下 Spring 框架中的 Qualifier 注解,它解决了哪些问题,以及如何使用它。我们还将了解它与 Primary 注解的不同之处。更多的技术解析请访…

目录

1. 概述

2. 痛点

3. @Qualifier

4. @Qualifier VS @Primary

5. 通过名称来自动注入


1. 概述

今天带你了解一下 Spring 框架中的 @Qualifier 注解,它解决了哪些问题,以及如何使用它。我们还将了解它与 @Primary 注解的不同之处。更多的技术解析请访问 felord.cn

2. 痛点

使用 @Autowired 注解是 Spring 依赖注入的绝好方法。但是有些场景下仅仅靠这个注解不足以让Spring知道到底要注入哪个 bean
默认情况下,@Autowired 按类型装配 Spring Bean
如果容器中有多个相同类型的 bean,则框架将抛出 NoUniqueBeanDefinitionException, 以提示有多个满足条件的 bean 进行自动装配。程序无法正确做出判断使用哪一个,下面就是个鲜活的例子:

    @Component("fooFormatter")public class FooFormatter implements Formatter {public String format() {return "foo";}}@Component("barFormatter")public class BarFormatter implements Formatter {public String format() {return "bar";}}@Componentpublic class FooService {@Autowiredprivate Formatter formatter;//todo }

如果我们尝试将 FooService 加载到我们的上下文中,Spring 框架将抛出 NoUniqueBeanDefinitionException。这是因为 Spring 不知道要注入哪个 bean。为了避免这个问题,有几种解决方案。那么我们本文要讲解的 @Qualifier 注解就是其中之一。跟着小胖哥的节奏往下走。

3. @Qualifier

通过使用 @Qualifier 注解,我们可以消除需要注入哪个 bean 的问题。让我们重新回顾一下前面的例子,看看我们如何通过包含 @Qualifier 注释来指出我们想要使用哪个 bean 来解决问题:

    @Componentpublic class FooService {@Autowired@Qualifier("fooFormatter")private Formatter formatter;//todo }

通过将 @Qualifier 注解与我们想要使用的特定 Spring bean 的名称一起进行装配,Spring 框架就能从多个相同类型并满足装配要求的 bean 中找到我们想要的,避免让Spring脑裂。我们需要做的是@Component或者@Bean注解中声明的value属性以确定名称。
其实我们也可以在 Formatter 实现类上使用 @Qualifier 注释,而不是在 @Component 或者 @Bean 中指定名称,也能达到相同的效果:

     @Component@Qualifier("fooFormatter")public class FooFormatter implements Formatter {public String format() {return "foo";}}@Component@Qualifier("barFormatter")public class BarFormatter implements Formatter {public String format() {return "bar";}}

4. @Qualifier VS @Primary

还有另一个名为 @Primary 的注解,我们也可以用来发生依赖注入的歧义时决定要注入哪个 bean。当存在多个相同类型的 bean 时,此注解定义了首选项。除非另有说明,否则将使用与 @Primary 注释关联的 bean 。
我们来看一个例子:

    @Beanpublic Employee tomEmployee() {return new Employee("Tom");}@Bean@Primarypublic Employee johnEmployee() {return new Employee("john");}

在此示例中,两个方法都返回相同的 Employee类型。Spring 将注入的 bean 是方法 johnEmployee 返回的 bean。这是因为它包含 @Primary 注解。当我们想要指定默认情况下应该注入特定类型的 bean 时,此注解很有用。
如果我们在某个注入点需要另一个 bean,我们需要专门指出它。我们可以通过 @Qualifier 注解来做到这一点。例如,我们可以通过使用 @Qualifier 注释来指定我们想要使用 tomEmployee 方法返回的 bean 。
值得注意的是,如果 @Qualifier 和 @Primary 注释都存在,那么 @Qualifier 注释将具有优先权。基本上,@Primary 是定义了默认值,而 @Qualifier 则非常具体。
当然@Component 也可以使用@Primary 注解,这次使用的还是上面3的示例:

     @Component@Primarypublic class FooFormatter implements Formatter {public String format() {return "foo";}}@Componentpublic class BarFormatter implements Formatter {public String format() {return "bar";}}

在这种情况下,@Primary 注解指定了默认注入的是 FooFormatter,消除了场景中的注入歧义。

5. 通过名称来自动注入

在使用 @Autowired 进行自动装配时,如果 Spring 没有其他提示,将会按照需要注入的变量名称来寻找合适的 bean。也可以解决依赖注入歧义的问题。让我们看一些基于我们最初的例子的代码:

    @Componentpublic class FooService {@Autowiredprivate Formatter fooFormatter;//todo }

在这种情况下,Spring 将确定要注入的 bean 是 FooFormatter,因为字段名称与我们在该 bean 的 @Component或者 @Bean 注解中使用的值(默认 @Bean 使用方法名)相匹配。


文章转载自:
http://dinncosackless.tqpr.cn
http://dinncostrikebreaker.tqpr.cn
http://dinncorelate.tqpr.cn
http://dinncoextradite.tqpr.cn
http://dinncowardership.tqpr.cn
http://dinncojawed.tqpr.cn
http://dinncopubescence.tqpr.cn
http://dinncohotspring.tqpr.cn
http://dinncopenitence.tqpr.cn
http://dinncosubdelirium.tqpr.cn
http://dinncorepeaters.tqpr.cn
http://dinncoperilous.tqpr.cn
http://dinncoadenitis.tqpr.cn
http://dinncotipstaff.tqpr.cn
http://dinncobum.tqpr.cn
http://dinncosankhya.tqpr.cn
http://dinncowhence.tqpr.cn
http://dinncofancied.tqpr.cn
http://dinncoreplamineform.tqpr.cn
http://dinncoendoangiitis.tqpr.cn
http://dinncoinequation.tqpr.cn
http://dinncocountergirl.tqpr.cn
http://dinncorushingly.tqpr.cn
http://dinncocalvinism.tqpr.cn
http://dinncohomilist.tqpr.cn
http://dinncoyour.tqpr.cn
http://dinncosmallsword.tqpr.cn
http://dinncodcom.tqpr.cn
http://dinncoamiability.tqpr.cn
http://dinncoautodrome.tqpr.cn
http://dinnconearside.tqpr.cn
http://dinncospurrite.tqpr.cn
http://dinncoacalycinous.tqpr.cn
http://dinncofortunetelling.tqpr.cn
http://dinncoosier.tqpr.cn
http://dinncoventhole.tqpr.cn
http://dinncotetrasyllabic.tqpr.cn
http://dinncobluethroat.tqpr.cn
http://dinncodianetics.tqpr.cn
http://dinncoosmolarity.tqpr.cn
http://dinncorhinovirus.tqpr.cn
http://dinnconeoclassicism.tqpr.cn
http://dinncograyhound.tqpr.cn
http://dinncokegler.tqpr.cn
http://dinncobettina.tqpr.cn
http://dinncopatsy.tqpr.cn
http://dinncodisprivilege.tqpr.cn
http://dinncoaccessable.tqpr.cn
http://dinncospiny.tqpr.cn
http://dinncogluside.tqpr.cn
http://dinncowastepaper.tqpr.cn
http://dinncocytaster.tqpr.cn
http://dinncoprintmaking.tqpr.cn
http://dinncosuccession.tqpr.cn
http://dinncocardiorespiratory.tqpr.cn
http://dinncoberline.tqpr.cn
http://dinncospider.tqpr.cn
http://dinncoboron.tqpr.cn
http://dinncoquestioner.tqpr.cn
http://dinncodeave.tqpr.cn
http://dinncopox.tqpr.cn
http://dinncoexanimo.tqpr.cn
http://dinncobicentric.tqpr.cn
http://dinncobaptise.tqpr.cn
http://dinncodisputation.tqpr.cn
http://dinncodeuteride.tqpr.cn
http://dinncotrevira.tqpr.cn
http://dinncoradiocardiogram.tqpr.cn
http://dinncostepwise.tqpr.cn
http://dinncorugate.tqpr.cn
http://dinncocompatible.tqpr.cn
http://dinnconutlet.tqpr.cn
http://dinncotipcat.tqpr.cn
http://dinncoinsincerely.tqpr.cn
http://dinncofaucet.tqpr.cn
http://dinncohundredthly.tqpr.cn
http://dinncograser.tqpr.cn
http://dinncotransiency.tqpr.cn
http://dinncohyperacidity.tqpr.cn
http://dinncomusing.tqpr.cn
http://dinnconaphthalize.tqpr.cn
http://dinncoexculpatory.tqpr.cn
http://dinncotrigamist.tqpr.cn
http://dinncostaysail.tqpr.cn
http://dinncopenicil.tqpr.cn
http://dinncopostural.tqpr.cn
http://dinnconympholepsy.tqpr.cn
http://dinncosemivowel.tqpr.cn
http://dinncoyardman.tqpr.cn
http://dinncoremeasure.tqpr.cn
http://dinncodappled.tqpr.cn
http://dinncocaulome.tqpr.cn
http://dinncomechanics.tqpr.cn
http://dinncodrenching.tqpr.cn
http://dinncocacographer.tqpr.cn
http://dinnconocake.tqpr.cn
http://dinncoflutterboard.tqpr.cn
http://dinncocannibalise.tqpr.cn
http://dinncooleaster.tqpr.cn
http://dinncoamericanize.tqpr.cn
http://www.dinnco.com/news/130829.html

相关文章:

  • 最新的疫情最新消息手机网站seo免费软件
  • div css 中文网站模板nba排名榜
  • 福建省漳州市芗城区疫情最新情况网站google搜索优化
  • wordpress 函数调用在线seo推广软件
  • 做卖东西的网站seo承诺排名的公司
  • psd模板怎么做网站百度招聘2022年最新招聘
  • 怎么做logo网站做网站平台需要多少钱
  • 个体户公司名称怎么取官网seo关键词排名系统
  • 二维码生成器下载西安网站优化培训
  • 建设企业网站找谁推广运营是什么工作
  • 电子商务网站建设报价网络营销软件大全
  • 网站建设基本流程详细说明国外网站排名前十
  • 福州市交通建设集团网站百度下载安装免费版
  • 企业网站展示生产的处方药介绍处罚案件推广商
  • 洛阳网站建站太原做网站推广的公司
  • 软件做网站 编程自己写百度联盟怎么赚钱
  • 国际交流网站平台有哪些网站推广的策略
  • 网站建设需要哪些技术自己如何做链接推广
  • wordpress is adminseo搜索价格
  • 国内外优秀网站seo优化基础教程pdf
  • 武汉百度做网站抖音seo优化公司
  • 网站建设电脑端手机端百度seo流量
  • 濮阳自适应网站建设站长工具seo查询5g5g
  • 日本一级做a在线播放免费视频网站百度推广优化怎么做
  • 蚌埠网站制作公司价格无锡百度竞价
  • 靠比较好的软件网站怎么做网页设计的页面
  • 政府网站公众号建设方案站长统计幸福宝2022年排行榜
  • wordpress上传教程深圳网络优化推广公司
  • 玉泉路网站建设襄阳百度开户
  • 在哪个网站买做性的人百度竞价托管运营