码迷,mamicode.com
首页 > 其他好文 > 详细

No unique bean of type

时间:2014-09-01 17:43:13      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:style   color   os   io   使用   java   ar   div   代码   

BeanCreationException: No unique bean of type

我定义了一个基类接口BaseDao,下面有些update\save的方法; 

然后我用一个BaseDaoImpl去实现这个接口;好啦,然后我现在有两个Dao接口,一个ADao extends BaseDao,一个BDao extends BaseDao; 然后再有这两个Dao的实现: ADaoImpl extends  BaseDaoImpl implements ADao; BDaoImpl extends BaseDaoImpl  implements BDao; 

这两个实现都加了@repository。结果就是启动错: 

No unique bean of type [com.a.b.BaseDao] is defined: expected single matching bean but found 2: [aDaoImpl, bDaoImpl] 


出现这个异常的原因是因为我用了@Autowird这个注解,这个注解是根据类型的方式搜索匹配的,找到了两个相符的依赖类,对于上述配置就是找到了basedao 的两个 bean: adaoimpl , bdaoimpl。 


对于这种同类型class有多个实例的解决方案的一种方案是继续延用autowired,不过通过@Qualifier指明是哪个名字的bean,如: 

Java代码    
  1. @Autowired  
  2.  public void setADao(@Qualifier("aDaoImpl") ADao adao) {  
  3.   this.adao= adao;  
  4.  }  


另外一种方案是使用@Resource这个注解,其功能与@autowired差不多,但是可以通过指定bean name或bean type注入相关bean,默认是按name注入,比autowired灵活很多,如: 
Java代码    
  1. @Resource  
  2. private ADao aDaoImpl;  

No unique bean of type

标签:style   color   os   io   使用   java   ar   div   代码   

原文地址:http://blog.csdn.net/huaweitman/article/details/38982717

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!