2017-03-16 58 views
0

我有这个类,创建一个从XML的应用程序上下文:进样豆依赖到Spring应用程序上下文

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

名为“foo”这个bean有一个构造函数,如下所示:

public Foo(Object dependency) { 
    ... 
} 

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

+0

如果您使用的是组件扫描,则可以使用@Autowired连接构造函数依赖项。如果有多个匹配,您可以使用Qualifier注释来缩小bean的范围。 – jmw5598

+0

这里是一个很好的写在这个话题上。 http://www.baeldung.com/constructor-injection-in-spring – jmw5598

回答

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> 

的依赖也可能是更容易让你的Foo对象引用是在SpringModel类私有变量与相应的setter方法。然后,您可以使用property标记将其链接到xml配置中的SpringModel bean。

相关问题