在Spring中的单例bean中注入了Prototype Bean

时间:2014-05-06 05:59:48

标签: java spring

我在单个豆'A'中注入了一个原型豆'B',如下所示。

<bean id="a" class="com.user.processor.A" >
<property name="objectb" ref="b"/>
</bean>

<bean id="b" class="com.user.processor.B" scope="prototype">
<aop:scoped-proxy/>
</bean>

public class A { 

    private B objectb; 

    public String process() { 

        objectb.setX("asdf"); 
        System.out.println("value of x : " objectb.getX() ); 

    } 

    public void setobjectb(B objectb){ 
        this.objectb = objectb; 
    } 

} 

原型bean'B'包含变量和getter&amp;这些变量的setter。

在A的一个方法中,我正在访问B的setter方法来设置变量,在设置后如果我使用getter方法打印该变量,则返回NULL。

每次访问B中的方法时,都会返回B的新对象。

我希望只有在调用bean A时才返回新的B对象..不是为了调用B中的每个方法...我怎么能这样做...

1 个答案:

答案 0 :(得分:0)

您在A。的bean定义中使用了不同的属性名称。

如下所示

<bean id="a" class="com.user.processor.A" >
<property name="responseObject" ref="b"/>
</bean>

此处属性名称为responseObject,但在A类定义中为属性名称 对于B是objectb,它在xml中的A bean定义中没有任何引用。

所以在xml或A类中更改名称并使它们相同。

如果有任何问题,请告诉我。