2011-11-23 43 views
2

我使用getBean(beanName,new Object{"anupama"})來覆蓋我的spring bean中使用的構造函數值靜態工廠方法。但它仍然選擇spring-application.xml中提到的默認值,而不是從getBean()中選取。getBean意外的行爲(字符串beanName,對象參數)

代碼:

<beans 
     xmlns="springframework.org/schema/beans" 
     xmlns:xsi="w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="springframework.org/schema/beans springframework.org/schema/beans/spring-beans-2.5.xsd" 
     default-lazy-init="false"> 
    <bean id="oneServiceImplementation" 
     class="sample.oneServiceImplementation" 
     factory-method="getInstance" 
     scope="prototype"> 
     <constructor-arg value="anu"/> 
    </bean> 
</beans> 

在我的課:

Object returnObj = reference.getFactory().getBean("oneServiceImplementation", 
        new Object{"anupama"}); 

以上調用應該通過參數anupama到的getInstance(String)方法,但我得到的getInstance(字符串)默認的 「阿努」 方法。

+0

顯示我們的bean定義,否則我們只是猜測。 – skaffman

+0

anupama

+0

<構造精氨酸值= 「ANU」/> anupama

回答

0

我覺得這甚至不編譯:

new Object{"anupama"} 

如果oneServiceImplementation.getInstance需要一個字符串,應該比你提供一個:

Object returnObj = reference.getFactory().getBean("oneServiceImplementation","anupama");