spring容器注入一个接口的两个实现类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring容器注入一个接口的两个实现类相关的知识,希望对你有一定的参考价值。
spring容器中能拥有两个同种类型的bean吗?我有两个dao类同时实现一个接口,这两个接口注入时报了异常如下。
- 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容器注入一个接口的两个实现类的主要内容,如果未能解决你的问题,请参考以下文章