Spring bean的自动装配属性

 

bean的自动装配属性能简化xml文件配置.

bean 的自动装配属性分为四种:

1.byName 

2.byTyoe

3.constructor

4. autodetect

 

byName:

它查找配置文件中的的bean的id 或者name 和本bean中的成员属性名相同的bean 自动装配 所以不用再给本bean添加peoperty标签 

例:有两个类

public Class  Person{

 

}

public Class Customer{

  private Person p;

  public setPerson(Person ps){

    this.p=ps;

  }

}

 

传统的xml配置为

 

<bean id="p" class="com.***.Person "/ >

<bean id="customer" class="com.***.Customer" >

<property name="p" ref="p"></property>   //将(ref)p实例化到bean的(name)p属性,达到方法中setPerson的目的

</bean>

 

byName的自动装配方法为

<bean id="p" class="com.***.Person "/ >

<bean id="customer" class="com.***.Customer"  autowrite="byName"/> //因为id=p的类的实例化名正好和com.***.Customer类的属性 P的成员变量名相同 所以被自动装配到 customer这个bean里面

 

 

byType:

方法同上:只不过他搜索的是成员的类型和配置文件中的某个bean的类型相同 则自动装配 ,但是要注意一点:如果出现多个相同类型的bean将抛出异常,处理方法为。设置不需要载入的bean 的属性 primary="false"(取消首选) 或 autowriter-candidate="false"(排除)

 

constructor:
试图在容器中寻找与需要自动装配的bean的构造函数参数一致的一个或多个bean,如果没找到则抛出异常

 

autodetect:
首先尝试使用constructor来自动装配,然后再使用byType方式。

 

 

 

默认自动装配设置 :

如果想要为它所创建的所有bean应用相同的自动装配策略来简化配置是 可以在根元素<beans> 上增加 default-autowire属性

 

<beans default-autowire="byName"> ...................</beans>

 

posted @ 2016-04-30 00:36  搬砖工的奋斗史  阅读(296)  评论(0编辑  收藏  举报