Spring自动装配模式(五)
Spring自动装配模式五:autodetect的解析
通过bean类的自省机制(introspection)来决定是使用constructor还是byType方式进行自动装配。如果发现默认的构造器,那么将使用byType方式。
<bean?id="employee"?class="spr.bean.Employee"?scope="prototype">
<property?name="name">
<value>维</value>
</property>
<property?name="sex">
<value>女</value>
</property>
</bean>
<bean?id="boss"?class="spr.bean.Boss"?autowire="autodetect"?dependency-check="objects">
</bean>
java代码有两种
一是带有默认构造器的采用getType中的set方法如果在构造器中有一个实例对象,但是在配置文件中并没有与之对应的bean的实例:那么在采用
autowire="constructor"自动装载时会出现异常信息
package?spr.bean;
public?class?Boss?{
/**姓名*/
public?String?name;
/**正式员工*/
public?Employee?employee;
/**默认构造器*/
public?Boss(){
}
/**带有参数的构造器*/
public?Boss(Employee?employee){
this.name="王晓丽";
this.employee=employee;
}
/**省略相应的set?get方法*/
}
一是没有默认构造器的采用constructor方法
package?spr.bean;
public?class?Boss?{
/**姓名*/
public?String?name;
/**正式员工*/
public?Employee?employee;
/**带有参数的构造器*/
public?Boss(Employee?employee){
this.name="王晓丽";
this.employee=employee;
}
public?Employee?employee;
/**省略相应的set?get方法*/
}
以上为Spring自动装配的五种模式,希望对大家有所帮助
<!--EndFragment-->