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

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

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

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

  2、Spring提供的解决方案

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

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

  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

Spring实战(六)自动装配的歧义性相关推荐

  1. Spring实战(第四版)读书笔记08——处理自动装配的歧义性

    1.标示首选的bean 组件扫描方式例子: @Component @Primary public class IceCream implements Dessert {...} Java配置例子: @ ...

  2. spring自动装配的歧义性

    错误提示:Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bea ...

  3. Spring精华问答 | Spring Bean的自动装配是怎么回事?

    戳蓝字"CSDN云计算"关注我们哦! Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Sprin ...

  4. Spring_1_Deal with the ambiguity of automatic assembly(处理自动装配的歧义问题)

    Deal with the ambiguity of automatic assembly(处理自动装配的歧义问题) It's first time for me to use this platfo ...

  5. Spring Boot(一) 自动装配--约定大于配置

    欢迎去我的个人博客--晓坞坐坐,里面有很多有趣的文章,不止是技术.www.lixiaodongisme.com 随着spring体系的发展,我们在开发时需要配置整合的东西也越来越多,在进行开发时,繁琐 ...

  6. Spring 由构造函数自动装配

    转载自  Spring 由构造函数自动装配 Spring 由构造函数自动装配 这种模式与 byType 非常相似,但它应用于构造器参数.Spring 容器看作 beans,在 XML 配置文件中 be ...

  7. Spring IOC容器-自动装配

    1 autowire="byName" 根据名称自动装配,自动去IOC容器中找与属性名同名的引用的对象,并自动注入. <!-- ###############自动装配#### ...

  8. Spring中的自动装配和Autowired

    彻底搞明白Spring中的自动装配和Autowired 一.自动装配 当Spring装配Bean属性时,有时候非常明确,就是需要将某个Bean的引用装配给指定属性.比如,如果我们的应用上下文中只有一个 ...

  9. Spring按类型自动装配注入数组、集合、Map

    Spring按类型自动装配注入数组.集合.Map时,是把应用上下文中对应类型的bean装配进集合,而不是直接查找一个对应类型的集合然后注入.以下面这段代码为例: import org.springfr ...

最新文章

  1. 2017计算机nit考试时间,关于2017年专接本NIT考试,你知道多少呢???
  2. win2d 图片水印
  3. 【Scratch】青少年蓝桥杯_每日一题_2.01_画五角星
  4. 学长毕业日记 :本科毕业论文写成博士论文的神操作20210312
  5. 验证码原理详解与案例
  6. 拳王虚拟项目公社:虚拟资源自动化挣钱,空手套白狼的躺赚技术
  7. 服务器装了无线网卡失败,.NET Core Runtime安装失败0x80070005Error报错服务器原因
  8. Win10版本那么多怎么区别
  9. API接口防止参数被篡改和重放攻击
  10. PHP审计工具之 RIPS
  11. [BJWC2018]第k大斜率
  12. 两代 Windows 性能大比拼!Win8 完胜 Win7
  13. linux编译sqrt,linux c sqrt
  14. c语言实现词法分析器+文法分析器(全代码)
  15. 常识-idea里鼠标左键选择变成矩形块
  16. 国外变电站3d可视化技术发展_变电站3D可视化运维管理!
  17. 微信营销七(微信朋友圈发文技巧)
  18. C语言指针知识点小结
  19. python小白入门
  20. 利用poi将Html中table转为Excel

热门文章

  1. 嵌入式根文件系统的移植和制作详解
  2. 测试方案和测试计划的区别
  3. Flutter获取随机数 Dart语言核心基础
  4. Android ContextCompat 使用详解
  5. flutter闪屏过渡动画,闪光占位动画
  6. java基础—IO流概述
  7. Spring AOP 前置通知
  8. geoserver矢量瓦片发服务前端展示偏移问题解决
  9. MySQL学习随笔--视图
  10. Android--使用Canvas绘图