自动装配
spring IOC容器可以指定装配bean,需要做的仅仅是在<bean>的autowire属性里指定自动装配的模式
byType:(根据类型自动装配)若IOC容器中有多个与目标bean类型一致的bean。在这种情况下,spring将无法判定哪个bean最合适该属性,所以不能执行自动装配
byName:(根据名称自动装配)必须将目标bean的名称和属性名设置的完全相同
constructor:(通过构造器自动装配)不推荐使用
<!--
autowire属性指定自动装配的方式,
byName 根据bean的名字和当前bean的setter风格属性名进行自动装配,若有匹配则自动装配,若没有匹配则不装配
byType 根据bean的类型和当前bean的属性的类型进行自动装配,若IOC容器中有一个以上的类型匹配bean,不适用
-->
根据名称:
<bean id="person" class="mdd.study.beans.autowire.Person"
p:name="Tom" autowire="byName"></bean>
根据类型:
<bean id="person" class="mdd.study.beans.autowire.Person"
p:name="Tom" autowire="byType"></bean>
自动装配的优缺点:
不够灵活:在bean的autowire属性进行自动装配将装配bean的所有属性,不可以只配置个别属性
autowire要么根据type装配,要么根据name,不可兼有之。
优点是比较方便,,,呵呵
所以实际项目中一般很少使用自动装配。