Spring在xml文件里面配置Bean的自动装配

Spring的xml文件中在<bean>里面定义autowire属性可以完成自动装配Bean

<bean id="admin" class="com.yuan.Admin" autowire="byName" />


关于自动装配有五种:
<1>,直接使用ref属性

    <bean id="admin" class="com.yuan.Admin">
        <property name="user" ref="user" />
    </bean>
    <bean id="user" class="com.yuan.User" />


<2>,autowire="byName"根据属性名称自动装配。如果一个bean的名称和其他bean属性的名称是一样的,将会自装配它。

    <bean id="admin" class="com.yuan.Admin" autowire="byName" />    
    <bean id="user" class="com.yuan.User" />


由于对“user” bean的名称是与“admin” bean的属性(“user”)名称,所以,Spring会自动通过setter方法将其自动装配。“setUser(User user)“
<3>,autowire="byType"根据数据类型自动装配。如果一个bean的数据类型是用其它bean属性的数据类型,兼容并自动装配它。

    <bean id="admin" class="com.yuan.Admin" autowire="byType" />    
    <bean id="user" class="com.yuan.User" />


由于“user” bean中的数据类型是与“admin” bean的属性(User对象)的数据类型一样的,所以,Spring会自动通过setter方法将其自动装配。“setUser(User user)“
<4>,autowire="constructor"通过构造函数参数的数据类型按属性自动装配Bean。

    <bean id="admin" class="com.yuan.Admin" autowire="constructor" />
    <bean id="user" class="com.yuan.User" />


由于“user” bean的数据类型与“admin” bean的属性(User对象)的构造函数参数的数据类型是一样的,所以,Spring通过构造方法自动装配 – “public Admin(User user)“
<5>,autowire="autodetect"  如果找到默认的构造函数,使用“自动装配用构造”; 否则,使用“按类型自动装配”。
    'autowire’和 ‘dependency-check’ 相结合,以确保属性始终自动装配成功。

    <bean id="admin" class="com.yuan.Admin" autowire="autodetect" dependency-check="objects />
    <bean id="user" class="com.yuan.User" />

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值