您的位置:首页 > 编程语言 > Java开发

Spring自动装配

2016-07-28 10:13 363 查看

Spring自动装配

Spring IOC容器可以自动装配Bean,需要做的仅仅是在< bean >的autowire属性里指定自动装配的模式

byType(根据类型自动装配):若IOC容器中有多个与目标Bean类型一致的bean,在这种情况下,Spring将无法判定那个Bean最合适改属性,所以不能执行自动装配。

-byName(根据名称自动装配):必须将目标Bean的名称和属性名称设置的完全相同。

public class Person {
private String name;
private Dog dog;
private Address address;
....
}


<bean id="dog" class="com.metadata.auto.Dog" p:name="xiaoqiang"
p:color="yellow"></bean>
<bean id="address" class="com.metadata.auto.Address" p:name="hanyang"
p:phone="1234567689"></bean>
<!--
可以使用autowire属性指定自动装配的方式,
byName根据bean的名字和当前bean的setter风格的属性名进行自动装配,若有匹配的则进行自动装配,没有则不装配(id名字要和属性名字对应,否则装配不成功)
byType根据bean的类型和当前bean的属性的类型进行自动装配。若IOC容器中有1个以上的类型匹配的bean,则抛异常。
-->
<bean id="person" class="com.metadata.auto.Person" p:name="xiaoxing"
autowire="byName"></bean>


自动装配的缺点

在Bean配置文件里设置autowire属性进行自动装配将会装配Bean的所有属性,然而,若希望装配个别属性时,autowire属性就不够灵活了。

autowire属性要么根据类型自动装配,要么根据名称自动装配,不能两者兼而有之。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring