7.IOC 操作 Bean 管理-xml 自动装配

8、IOC 操作 Bean 管理(xml 自动装配)

1、什么是自动装配
(1)根据指定装配规则(属性名称或者属性类型), Spring 自动将匹配的属性值进行注入
2、演示自动装配过程
(1)根据属性名称自动注入

<!--实现自动装配
bean 标签属性 autowire,配置自动装配
autowire 属性常用两个值:
byName 根据属性名称注入 ,注入值 bean 的 id 值和类属性名称一样
byType 根据属性类型注入
-->
<bean id="emp" class="com.leizi.spring5.autowire.Emp" autowire="byName">
<!--<property name="dept" ref="dept"></property>-->
</bean>
<bean id="dept" class="com.leizi.spring5.autowire.Dept"></bean>

(2)根据属性类型自动注入

<!--实现自动装配
bean 标签属性 autowire,配置自动装配
autowire 属性常用两个值:
byName 根据属性名称注入 ,注入值 bean 的 id 值和类属性名称一样
byType 根据属性类型注入
-->
<bean id="emp" class="com.leizi.spring5.autowire.Emp" autowire="byType">
<!--<property name="dept" ref="dept"></property>-->
</bean>
<bean id="dept" class="com.leizi.spring5.autowire.Dept"></bean>

byName自动装配:

<bean id="dog" class="com.stt.pojo.Dao"/>
<!--
byName: 会自动在容器上下文中查找,和自己对象set方法后缀名对应的 bean id
-->
<bean id="student" class="com.stt.pojo.Student" autowire="byName">
<property name="name" value="leizia"/>
</bean>
<!--Student类中存在setDog()方法,自动查找与set方法后名相同的bean的id,所以自动查找到bean id="dog"-->

byType自动装配:

<!--可以不要id-->
<bean id="cat" class="com.stt.pojo.Cat"/>
<bean id="dog" class="com.stt.pojo.Dog"/>
<!--
byType : 会自动在容器上下文中查找,和自己对象属性类型相同的bean,必须保证类名唯一,若两个类名相同则报错
-->
<bean id="person" class="com.stt.pojo.Person" autowire="byType">
<property name="name" value="leizia"/>
</bean>

小结:

byName:需要保证所有bean的 id 唯一,并且这个bean id 需要和自动注入的属性的set后缀名一致

byType:需要保证所有bean的class唯一,并且这个bean需要和自动注入的属性的类型 一致

posted @   Lz_蚂蚱  阅读(92)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起