引用类型的自动注入:spring框架根据某些规则可以给引用类型赋值。不用再给引用类型赋值
使用的规则常用的是byName,byType。
1.byName(按名称注入):java类中引用类型的属性名和spring容器中(配置文件)<bean>的id名称一样,
且数据类型是一致的,这样的容器中的bean,spring能够赋值给引用类型。
语法:
<bean id="xx" class="yyy" autowire="byName">
简单类型属性赋值
</bean>
<bean id="myStudent" class="com.chen.ba04.Student" autowire="byName">
<property name="name" value="张三"/>
<property name="age" value="20"/>
</bean>
<bean id="school" class="com.chen.ba04.School">
<property name="name" value="北京大学" />
<property name="address" value="北京" />
</bean>
2.byType(按类型注入):Java类中引用类型的数据类型和spring容器中(配置文件)<bean>的class属性
是同源关系的,这样的bean能够赋值给引用类型。
同源就是一类的意思:
1.Java类中引用类型的数据类型和class的值是一样的。
2.java类中引用类型的数据类型1和bean的class的值是父子类关系的。
3.java类中引用类型的数据类型和bean的class的值接口和实现类关系的
语法:
<bean id="xx" class="yyy" autowire="byType">
简单类型属性赋值
</bean>
注意:在byType中,在配置文件中声明bean的时候只能有一个符合条件的,
多余一个是错误的
<bean id="myStudent" class="com.chen.ba05.Student" autowire="byType">
<property name="name" value="李四"/>
<property name="age" value="20"/>
</bean>
<bean id="mySchool" class="com.chen.ba05.School">
<property name="name" value="武汉大学" />
<property name="address" value="武汉" />
</bean>