`
Far_ranqing
  • 浏览: 10668 次
  • 性别: Icon_minigender_2
  • 来自: 保定
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

自动装配之byType

阅读更多

自动装配之byType

byType如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配。如果存在多个该类型的bean,那么将会抛出异常,并指出不能使用byType方式进行自动装配。若没有找到相匹配的bean,则什么事都不发生,属性也不会被设置。如果你不希望这样,那么可以通过设置dependency-check="objects"Spring抛出异常。

下面通过示例来理解:

JavaBean代码:

//JavaBeanàAddressServiceImpl定义了一个name属性,和一个相应的set依赖注入方法

public class AddressServiceImpl {

    /**住址*/

    private String address;

    public void setAddress(String address){

       this.address=address;

    }

}

//JavaBeanàHomeAddressServiceImpl,继承上者,且有一个构造函数

public class HomeAddressServiceImpl extends AddressServiceImpl {

    private String address;

    public void setAddress(String address){

       this.address=address;

    }

    public HomeAddressServiceImpl(String address){

       this.address=address;

    }

}

//JavaBeanàEmpServiceImpl,定义一个companyAddress,和一个相应的set依赖注入方法

public class EmpServiceImpl {

    /**公司地址*/

    private AddressServiceImpl companyAddress;   

    public void setCompanyAddress(AddressServiceImpl companyAddress){

       this.companyAddress=companyAddress;

    }

}

byType.xml文件:

<bean id="AddressServiceImpl" class="cn.csdn.service. AddressServiceImpl"

       scope="singleton">

       <property name="address">

           <value>北京海淀上地软件园</value>

       </property>

</bean>

<bean id="homeAddressServiceImpl" class="cn.csdn.service.HomeAddressServiceImpl"

       scope="singleton">

<!--       <property name="address">

           <value>北京海淀上地软件园</value>

       </property>

-->

       <constructor-arg index="0">

         <value>北京</value>

       </constructor-arg>

</bean>

<bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl"

       scope="singleton" autowire="byType" />

 

注意:上面的黄色区域和绿色区域只择其一

       当有多个相同类型的bean时,会出现bug

分享到:
评论

相关推荐

    spring中的自动装配实例byName、byType

    本篇文章将深入探讨两种主要的自动装配方式:byName和byType,以及它们在实际应用中的实例。 **1. byName自动装配** ByName自动装配是基于bean的属性名来寻找依赖的。假设我们有两个bean,一个是`DataSource`类型...

    spring自动装配例子

    (3)byType:根据属性 类型 自动装配,相同类型多个会抛出异常,设值注入 &lt;bean class="xxx" &gt;&lt;/bean&gt; (4)constructor:与 byType 方式类似,不同之处是构造注入 &lt;bean class="xxx" &gt;&lt;/bean&gt; 本例,演示 byName...

    Spring实现自动装配

    Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(Dependency Injection,简称DI)特性而闻名,其中自动装配(Auto-Wiring)是DI的一种实现方式。自动装配允许开发者减少手动配置bean之间的依赖关系...

    Spring自动装配解析

    Spring框架是Java开发中广泛应用的一个轻量级容器,它的核心特性之一就是依赖注入(Dependency Injection,简称DI),而Spring的自动装配(Auto-Wiring)则是DI的一种实现方式。本篇文章将深入探讨Spring自动装配的...

    Java注解机制之Spring自动装配实现原理详解

    其中,byName是指根据Bean对象的名称来进行自动装配,byType是指根据Bean对象的类型来进行自动装配,constructor是指使用构造方法来进行自动装配,autodetect是指自动选择byType或constructor的自动装配方式,no是指...

    spring学习之四“自动装配”

    2. **byType**:基于bean的类型进行自动装配。如果一个bean的属性类型在Spring容器中有一个唯一的匹配bean,那么这个bean会被注入。 3. **constructor**:构造函数级别的自动装配,Spring会在bean实例化时,通过...

    第四章示例代码__自动装配

    在本节中,我们将深入探讨“自动装配”这一核心概念,特别是在编程领域,尤其是与软件开发框架相关的应用。自动装配是依赖注入(Dependency Injection,DI)的一种实现方式,它简化了对象之间的关联设置,使代码更加...

    spring自动装配

    在压缩包文件名称“spring_0700_IOC_Autowire”中,“IOC”代表“Inversion of Control”,即控制反转,它是Spring的核心概念之一,自动装配是IOC的一种实现方式。这个文件可能包含了关于Spring自动装配的教程材料,...

    spring自动装配项目struts2

    自动装配是Spring框架的核心特性之一,它允许框架自动管理对象之间的依赖关系,无需在代码中显式地创建或查找依赖对象。Spring提供了多种自动装配方式,如byType、byName等,可以根据配置或注解来实现。在项目中,...

    pring自动装配方式介绍共2页.pdf.zip

    Spring会检查Bean是否有无参构造函数以及setter方法,如果有,Spring会尝试通过setter方法进行byType的自动装配。 5. **no**:关闭自动装配。当设置为`no`时,Spring不会进行任何自动装配,完全依赖于手动配置。 ...

    Spring 自动装配及其注解

    在Spring框架中,自动装配(Autowiring)是一种机制,它允许Spring容器自动为bean提供其依赖,而无需显式配置。自动装配极大地简化了应用的配置,使得开发者可以更专注于业务逻辑。本文将深入探讨Spring自动装配的...

    Spring的自动装配源代码

    本文将深入探讨Spring中的六种自动装配方式:byType、byName、no、constructor、autodetect和default。 1. byType(按类型装配) 当Spring容器在配置文件中找不到明确的通过`ref`属性指定的依赖时,会尝试通过类型...

    Spring自动装配模式表

    本文将详细介绍Spring框架中的五种自动装配模式:`no`、`byName`、`byType`、`constructor`以及`autodetect`,帮助开发者更好地理解和应用这些模式。 #### 二、自动装配模式概览 自动装配是指Spring容器根据一定的...

    Spring的Autowired自动装配(XML版本+Annotation版本+源码+解析)

    本篇将重点讲解Spring的@Autowired自动装配机制,包括XML配置版和注解版,并深入到源码层面进行解析。 @Autowired是Spring框架中的一个核心注解,用于实现自动装配bean的需求。当我们想要在类中注入某个依赖时,...

    彻底搞明白Spring中的自动装配和Autowired注解的使用

    在 Spring 中,自动装配是通过 AutowireCapableBeanFactory 接口来实现的,该接口定义了四种自动装配策略:byName、byType、constructor 和 AUTOWIRE_AUTODETECT(已被弃用)。 1. byName 自动装配 byName 自动...

    Spring中自动装配的4种方式

    byType 自动装配是指通过设置 property 标签的 autowire 属性为 byType,Spring 将自动寻找一个与该属性类型相同的 Bean,注入进来。例如: ```xml &lt;property name="dataSource" autowire="byType" /&gt; ``` 在上面...

    第五章 Spring4 自动装配、方法注入

    在本章中,我们将深入探讨Spring框架的核心特性之一——自动装配和方法注入。Spring作为一款广泛应用的Java企业级开发框架,极大地简化了依赖管理,提高了代码的可测试性和可维护性。自动装配和方法注入是Spring实现...

    Spring自动装配Bean实现过程详解

    * byType:根据Property的数据类型自动装配,如果一个Bean的数据类型兼容另一个Bean中的Property数据类型,则自动装配。 * constructor:根据构造方法的参数数据类型,进行byType模式的自动装配。 * autodetect:...

Global site tag (gtag.js) - Google Analytics