Spring实战(六)自动装配的歧义性

 2023-09-11 阅读 26 评论 0

摘要:  1、Spring进行自动装配时碰到的bean歧义性问题。   在进行自动装配时,只有仅有一个bean匹配所需结果时,才是可行的。   如果不仅仅一个bean能够匹配结果,例如一个接口有多个实现,这种歧义性会阻碍Spring自动装配属性、构造器参数或者方法

  1、Spring进行自动装配时碰到的bean歧义性问题。

  在进行自动装配时,只有仅有一个bean匹配所需结果时,才是可行的。

  如果不仅仅一个bean能够匹配结果,例如一个接口有多个实现,这种歧义性会阻碍Spring自动装配属性、构造器参数或者方法参数。

  (虽然在实际中,这种歧义性问题很罕见,通常所需的接口只有一个实现类。)

模糊性不同于歧义性? 

  2、Spring提供的解决方案

    A. 将可选bean中的某一个设为首选(primary)的bean;

    B. 使用限定符,使得Spring可选的bean减少为一个(only one)。

 

java前后端分离用什么技术。  3、solution A---使用@Primary

  Spring注解:

@Component
@Primary
public class IceCream implements Dessert{...}

  JavaConfig:

@Bean
@Primary
public Dessert iceCream(){return new IceCream();  
}

  XML中:

<bean id="iceCream" class="xxx.xxx.IceCream" primary="true" />  

 

模糊性与歧义的区别?  4、solution B---限定符@Qualifier("要注入的bean的ID")

//最简单的用法
@AutoWired
@Qualifier("iceCream")
public void setDessert(Dessert dessert){this.dessert=dessert;  
}

 

  5、创建自定义的限定符(略了…知道有这个功能就行)

转载于:https://www.cnblogs.com/bigbigbigo/p/8368465.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/44652.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息