`

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依赖注入例子

    创建`UserRepository`接口和它的实现类`JdbcUserRepository`。`JdbcUserRepository`将包含与数据库交互的具体逻辑。 2. **注解处理:** 在`UserService`类中,我们不直接创建`UserRepository`的实例,而是声明它...

    spring依赖注入的实现原理

    在Spring框架中,依赖注入是核心特性之一,通过控制反转(Inversion of Control,IoC)实现了组件之间的解耦。 ### 依赖注入的基本概念 依赖注入允许开发者在不修改代码的情况下,通过配置来改变对象间的依赖关系。...

    一个简单的spring依赖注入的例子

    当Spring容器创建一个Bean时,会通过反射调用无参构造函数实例化对象,然后根据配置信息调用setter方法或使用构造函数参数进行依赖注入。 通过这个简单的例子,我们可以看到Spring如何通过反射机制实现依赖注入,...

    Spring容器 .ppt

    本篇内容将深入探讨Spring容器的基础、Bean的概念、依赖注入、Bean的范围、自定义接口、Bean定义的继承以及容器扩展点等重要知识点。 1. **简介** Spring容器是Spring框架的基石,主要分为两种类型:`BeanFactory`...

    Spring依赖注入检查.

    当有多个相同类型的bean,而我们需要指定具体哪一个时,`@Qualifier`注解可以用来明确指定。 7. **@Resource注解**: 这个注解和`@Autowired`类似,但默认按名称进行匹配,而非类型匹配。 8. **@Scope注解**: ...

    SpringIoc注入

    例如,如果有两个同名接口的实现类,那么必须使用`@Qualifier`来指定具体使用哪一个。 **五、XML配置文件中的注入** 在传统的Spring配置中,依赖注入是通过XML配置文件完成的。例如: ```xml ``` 这里,`...

    深度解析spring容器管理bean

    "深度解析spring容器管理bean"这一主题,旨在深入理解Spring如何通过反射机制、依赖注入(DI)以及XML或Java配置来实现对Bean的生命周期管理。 首先,Spring容器主要有两种类型:DefaultListableBeanFactory和...

    spring IOC容器依赖注入XML配置

    构造器注入可以通过指定带有参数的构造函数来完成,而接口注入则涉及实现一个接口,然后在配置文件中声明实现类。 在Eclipse环境中,我们可以使用Maven作为构建工具来管理项目的依赖。Maven的pom.xml文件会列出所有...

    如何实现Spring依赖注入 AOP.rar

    3. **接口注入**:Spring通过实现一个接口并在接口中定义setter方法来注入依赖。这种方式相对较少使用,通常用于特殊场景。 **面向切面编程(AOP)** AOP是一种编程范式,它允许程序员定义“切面”,这些切面可以...

    获取Spring容器

    首先,在`spring-context.xml`中添加一个名为`ApplicationContextUtil`的Bean,该Bean用于实现`ApplicationContextAware`接口,以便Spring容器能够自动注入`ApplicationContext`。 ```xml ``` ##### 2. 实现`...

    获取spring容器的方法

    这样,在Spring容器启动时,它会自动调用`setApplicationContext`方法,将`ApplicationContext`实例注入到实现了`ApplicationContextAware`的类中。 ### 结论 选择哪种方法获取Spring容器主要取决于具体的应用场景...

    SPRING DI注入例子

    例如,通过接口定义服务,然后通过不同的实现类提供服务,容器负责管理这些服务实例的创建和注入,使得代码更加灵活和易于测试。 10. **测试** 使用DI的代码更易于单元测试,因为我们可以控制注入的依赖,如使用...

    spring注解注入示例详解.pdf

    当有多个实现同一接口的Bean时,@Qualifier可以用来指定哪一个具体的实现类被装配。 比如: ```java @Autowired public void setUserDao(@Qualifier("userDao") UserDao userDao) { this.userDao = userDao; } ```...

    Spring之核心容器bean

    在Spring中,bean是一个由容器管理的对象,它的实例化、初始化、装配和销毁都是由Spring容器控制的。你可以通过XML、注解或者Java配置类来定义bean。例如,一个简单的XML配置如下: ```xml ``` 这里,`myBean`...

    Spring注入的方式

    - 示例:`example4forSetter`可能是一个展示setter注入的例子,包含了注入依赖的setter方法,Spring容器会在初始化后调用这些方法注入依赖。 选择构造器注入还是setter注入取决于具体需求。构造器注入适用于核心...

    Spring学习笔记(6)----编码剖析Spring依赖注入的原理

    当我们使用`@Autowired`注解时,Spring容器会自动寻找匹配类型的bean并注入。这个过程涉及到了Spring的Bean工厂和ApplicationContext。Bean工厂是Spring的核心,负责bean的创建、初始化、配置以及管理。...

    Spring IOC容器实现分析.pdf 下载

    Spring的IOC容器主要由BeanFactory和ApplicationContext两个接口构成。BeanFactory是Spring的基础容器,提供了基本的对象管理功能;ApplicationContext则是在BeanFactory的基础上扩展,增加了更多企业级应用的功能,...

    spring容器简单实例

    例如,你可以创建一个名为`beans.xml`的配置文件,其中包含bean的声明: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:...

    spring 容器.docx

    Spring容器主要有两种接口形式:BeanFactory和ApplicationContext,后者是前者的子接口。这两种接口都是用来表示Spring容器,它们的主要职责是创建Bean实例并管理这些实例。 BeanFactory作为Spring的基础容器接口,...

    Spring Ioc 注解 依赖注入

    - **依赖注入**:依赖注入是一种设计模式,通过依赖注入,一个类的对象不再负责创建其依赖的对象,而是由外部容器(Spring容器)来负责创建这些依赖并注入到需要它们的地方。 #### 三、Spring IoC容器的工作原理 ...

Global site tag (gtag.js) - Google Analytics