Spring学习笔记(五)

四、 复杂装配
(1) 、自动装配 :容器依照一些规则去装配bean中的一个属性
      自动装配只对对象类型起作用,对基本类型不起作用
autoWrite = "byName" 按照名字去自动装配 ,根据属性名去自动装配
则配置文件中的id应该和Bean中的属性名一样
autoWrite = "byType" 根据属性的类型去匹配
autoWrite = "constructor" 根据构造器的参数类型去匹配
autoWrite = "autoDetect" 自动检测 
例子:
public   class  SomeBean {
  //自动装配
private  String  str2 ;
private  OtherBean  ob ;
public  SomeBean(OtherBean ob) {
super ();
this . ob  = ob;
}
public  String getStr2() {
return   str2 ;
}
public   void  setStr2(String str2) {
this . str2  = str2;
}
public  OtherBean getOb() {
return   ob ;
}
public   void  setOb(OtherBean ob) {
this . ob  = ob;
}
public   void  printInfo(){
System. out .println( "str2 " + str2  + " ob " + ob );
}
}
public class OtherBean {
//自动装配
private String str1;
public String getStr1() {
return str1;
}
public void setStr1(String str1) {
this.str1 = str1;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "str1 "+str1;
}  
}
配置文件的写法
< bean  id = "otherBean"  class = "ioc5.OtherBean" >
< property  name = "str1"  value = "String1"  />
</ bean >
<!--  <bean id="someBean" class="ioc5.SomeBean" autowire="byName">
<property name="str2" value="String2" />
</bean>
 <bean id="someBean" class="ioc5.SomeBean" autowire="byType">
<property name="str2" value="String2" />
</bean>
 -->
   < bean  id = "someBean"  class = "ioc5.SomeBean"  autowire = "constructor" >
< property  name = "str2"  value = "String2"  />
</ bean >
1、 自动装配的优先级低于手动装配
自动装配一般用于快速开发建立系统原型的情况,但是在正式的开发中很少使用,因为容易出错,难以维护;

本文出自 “新新手” 博客,谢绝转载!

你可能感兴趣的:(spring,职场,笔记,休闲)