专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

Spring中如何解决自动装配的歧义性_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/8 8:48:07       共计:3596 浏览

Spring中如何解决自动装配的歧义性?

我们先来看看什么是Spring自动装配的歧义性:

当定义的多个bean都是继承同一个接口的时候,使用@Autowired注解对接口进行注入的时候,会出现歧义性。因为Spring这时候不知道找哪个实现bean注入了。

Talk is cheap,show me the code.来看下面这段代码:

上面的代码就是典型的Spring自动装配的歧义性,如果在idea编辑器下编写,会发现他会提示报错:

看到这,我相信大家都已经明白了什么是Spring自动装配的歧义性。

解决自动装配的歧义问题

那实际项目开发中真有这种情况该如何解决呢?

采用@Primary注解到其中一个类,这样等于是给实现了CarService接口的指定bean定义为首选类,这样Spring默认就会注入这个首选类,当然首选类不可以同时标记两个以上。

那么问题来了,如果我不想注入这个首选类,我想使用另外一个bean怎么办呢?

给这个bean起一个别名:

大家是不是知道了如何解决多实现类自动装配的问题?是不是很简单呢?这里大家是不是发现使用@Resource注解可以很好的解决上面的问题?经常写代码的人一定知道了解决的办法了:以上就是Spring自动装配的歧义性问题以及如何解决,希望我的解答对大家有帮助!那么这里再问大家一个问题:@Autowired和@Resource注解的区别是什么呢?

期待你的留言~

我是【java架构设计】,关注我,持续为您提供Java领域优质内容!

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:C语言和Python_java | ·下一条:提示软件包system不存在_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有