2017-03-16 82 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。

相關問題