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