Spring自动装配

来源:互联网 发布:热力学软件计算相图 编辑:程序博客网 时间:2024/05/16 10:04

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属性要么根据类型自动装配,要么根据名称自动装配,不能两者兼而有之。

0 0