假设我们有一个类名为a.java的类
A(){
}
一个自定义构造函数有一个类似的参数
A(B b){
super(b);
}
现在,类C正在扩展类A以使用A类的getter。同样,C有一个带有一个参数的构造函数,比如
C(A a)
{
this.a = a;
}
同样,我们有一个类D,在这个类中,我们有像这样的构造函数
D(C c )
{this.c = c;
}
现在我的问题是,在这种情况下,我们如何执行弹簧构造注入?
这是我写的上下文:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<bean id="a" class="com.my.springtest.A">
<constructor-arg ref="b"/>
</bean>
<bean id="b" class="com.my.springtest.B"/>
<bean id="c" class="com.my.springtest.C">
<constructor-arg ref="a"/>
</bean>
<bean id="d" class="com.my.springtest.D">
<constructor-arg ref="c"/>
</bean>
</beans>
保存这个文件并将其放入类路径(例如,如果使用maven,则为src/main/resources)。然后你可以在junit:中创建这个上下文
@ContextConfiguration(locations = { "classpath:/test-context.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
public class SpringTest {
@Autowired
private D d;
@Test
public void testBean() {
Assert.assertNotNull(d);
}
}