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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LittleMangoYX/article/details/83787035

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" />

猜你喜欢

转载自blog.csdn.net/LittleMangoYX/article/details/83787035