spring容器注入一个接口的两个实现类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring容器注入一个接口的两个实现类相关的知识,希望对你有一定的参考价值。

 spring容器中能拥有两个同种类型的bean吗?我有两个dao类同时实现一个接口,这两个接口注入时报了异常如下。

Text代码  技术分享
  1. org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.xxx.xxx.xxx.integration.dao.IDAO] is defined: expected single matching bean but found 2: [aDAOImpl, bDAOImpl]  

解决方法:

        两个类实现同一个接口,在一个实现类加上@Component("aDAOImpl"),一个加上@Component("bDAOImpl"),在引用的时候加上@Resource(name="aDAOImpl")或者@Resource(name="bDAOImpl"),就会指定用哪个实现类,不加resource注解就会出现上面那个错误。

        但需特别强调的是,如果有其它的service用到实现类时没用@Resource,要把所有使用到实现类的注解由@Autowired改为@Resource。

以上是关于spring容器注入一个接口的两个实现类的主要内容,如果未能解决你的问题,请参考以下文章

spring Security项目快速搭建

深入理解Spring的IOC容器

Spring ioc容器

Spring学习记录1——IoC容器

Spring:Spring容器简介

一个类实现两个接口,如何用spring实例化