反向控制/依赖注射两种主要形式
1、基于setter的依赖注射,是在调用无参的构造函数或者无参的静态工程方法实例化你的bean之后,通过调用你的bean上的setter方法实现的。(推荐)
<bean id="exampleBean" class="example.ExampleBean">
<property name="beanOne"><ref bean="anotherExampleBean"/></property>
<property name="beanTwo"><ref bean="yetAnthorBean"/></property>
<property name="intergerProperty"><value>1</value></property>
</bean>
<bean id="anotherExampleBean" class="example.AnotherBean">
<bean id="yetAnoterBean" class="example.YetAntherBean">
public class ExampleBean{
private AntherBean beanOne;
private YetAntherBean beanTwo;
private int i;
public void setBeanOne(AntherBean beanOne){
this.beanOne = beanOne;
}
public void setBeanTwo(YetAntherBean beanTwo){
this.beanTwo = beanTwo;
}
public void setIntegerProperty(int i){
this.i = i
}
}
见P20 spring-reference.pdf
2、基于构造函数的依赖注射,它时通过调用带有许多参数的构造方法实现的,每个参数表示一个合作者或者属性。
<bean id="exampleBean" class="example.ExampleBean">
<constructor-arg><ref bean="antherExampleBean"/></constructor=arg>
<constructor-arg><ref bean="yetAntherBean"/></constructor=arg>
<constructor-arg><value>1</value></constructor=arg>
</bean>
<bean id="antherExampleBean" class="examle.AntherBean"/>
<bean id="yetAntherBean" class="example.YetAntherBean"/>
public class ExamleBean{
private AntherBean beanOne;
private YetAntoherBean beanTwo;
private int i;
public ExamleBean(AntherBean antherBean,YetAntherBean yetAntherBean,int i){
this.beanOne = antherBean;
this.beanTwo = yetAntherBean;
this.i = i;
}
}
反向控制/依赖注射两种主要形式
最新推荐文章于 2020-12-13 23:33:51 发布