如何在此场景中执行构造函数注入



假设我们有一个类名为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);
    }
}

最新更新