Spring实战(六)自动装配的歧义性
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实战(六)自动装配的歧义性相关推荐
- Spring实战(第四版)读书笔记08——处理自动装配的歧义性
1.标示首选的bean 组件扫描方式例子: @Component @Primary public class IceCream implements Dessert {...} Java配置例子: @ ...
- spring自动装配的歧义性
错误提示:Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bea ...
- Spring精华问答 | Spring Bean的自动装配是怎么回事?
戳蓝字"CSDN云计算"关注我们哦! Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Sprin ...
- 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 ...
- Spring Boot(一) 自动装配--约定大于配置
欢迎去我的个人博客--晓坞坐坐,里面有很多有趣的文章,不止是技术.www.lixiaodongisme.com 随着spring体系的发展,我们在开发时需要配置整合的东西也越来越多,在进行开发时,繁琐 ...
- Spring 由构造函数自动装配
转载自 Spring 由构造函数自动装配 Spring 由构造函数自动装配 这种模式与 byType 非常相似,但它应用于构造器参数.Spring 容器看作 beans,在 XML 配置文件中 be ...
- Spring IOC容器-自动装配
1 autowire="byName" 根据名称自动装配,自动去IOC容器中找与属性名同名的引用的对象,并自动注入. <!-- ###############自动装配#### ...
- Spring中的自动装配和Autowired
彻底搞明白Spring中的自动装配和Autowired 一.自动装配 当Spring装配Bean属性时,有时候非常明确,就是需要将某个Bean的引用装配给指定属性.比如,如果我们的应用上下文中只有一个 ...
- Spring按类型自动装配注入数组、集合、Map
Spring按类型自动装配注入数组.集合.Map时,是把应用上下文中对应类型的bean装配进集合,而不是直接查找一个对应类型的集合然后注入.以下面这段代码为例: import org.springfr ...
最新文章
- 2017计算机nit考试时间,关于2017年专接本NIT考试,你知道多少呢???
- win2d 图片水印
- 【Scratch】青少年蓝桥杯_每日一题_2.01_画五角星
- 学长毕业日记 :本科毕业论文写成博士论文的神操作20210312
- 验证码原理详解与案例
- 拳王虚拟项目公社:虚拟资源自动化挣钱,空手套白狼的躺赚技术
- 服务器装了无线网卡失败,.NET Core Runtime安装失败0x80070005Error报错服务器原因
- Win10版本那么多怎么区别
- API接口防止参数被篡改和重放攻击
- PHP审计工具之 RIPS
- [BJWC2018]第k大斜率
- 两代 Windows 性能大比拼!Win8 完胜 Win7
- linux编译sqrt,linux c sqrt
- c语言实现词法分析器+文法分析器(全代码)
- 常识-idea里鼠标左键选择变成矩形块
- 国外变电站3d可视化技术发展_变电站3D可视化运维管理!
- 微信营销七(微信朋友圈发文技巧)
- C语言指针知识点小结
- python小白入门
- 利用poi将Html中table转为Excel