将bean依赖项注入Spring应用程序上下文中

时间:2017-03-16 18:18:14

标签: java spring spring-mvc

我有这个类从XML创建应用程序上下文:

public class SpringModel {
    public SpringModel(Object dependency) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(...);
        Foo foo = (Foo) applicationContext.getBean("foo");
    }
}

豆名为" foo"有一个看起来像这样的构造函数:

public Foo(Object dependency) {
    ...
}

我想将SpringModel的构造函数中的参数注入Foo的构造函数中。这可能吗?

1 个答案:

答案 0 :(得分:0)

如果您正在使用基于xml的应用程序上下文,则可以定义依赖项,如

  <beans>
    <bean id="dependencyObj" class="Object"/>

    <bean id="springModelObj" class="SpringModel">
        <constructor-arg ref="dependencyObj"/>
    </bean>

    <bean id="foo" class="Foo">
      <constructor-arg ref="dependencyObj" />
    </bean>
</beans>

使用适当的setter方法将Spring对应引用作为SpringModel类中的私有变量也可能更容易。然后,您可以使用属性标记将其链接到xml配置中的SpringModel bean。