2014-09-25 28 views
0

我对Spring和atm检查XML驱动的Spring颇为陌生。为什么Spring明显地合并了两个不同的bean?

现在我的问题是,Spring以某种方式合并来自同一个bean类的两个不同的bean对象。它将它们视为一个单一的对象。

请看看下面的代码:

<bean id="shapeList1" class="coreservlets.ShapeListMaker" > 
    <constructor-arg index="0"> 
     <list> 
     <ref local="shape1" /> 
     </list> 
    </constructor-arg> 
</bean> 
<bean id="shapeList2" class="coreservlets.ShapeListMaker" > 
    <constructor-arg> 
     <ref local="shape2" /> 
    </constructor-arg> 
</bean> 

...的相关类:

public class ShapeListMaker { 

public ShapeListMaker (List<Shape> shapes) { 
    shapelist = shapes; 
} 

public ShapeListMaker (Shape shape) { 
    shapelist.add(shape); 
} 

private static List<Shape> shapelist = new ArrayList<>(); 

两个对象(shapeList1 == shapeList2)返回比较。打印其中一个列表产生两种形状,shape1shape2 ...为什么?我很困惑...

通过相同的xml文件,我创建了一些其他bean对象(形状 beans)没有任何麻烦或合并。

+0

向我们展示更多您的代码。你如何在你的代码中获得'shapeList1'和'shapeList2'?发布一个完整的,但小程序,演示问题。 – Jesper 2014-09-25 10:58:30

+0

感谢您的快速反应! “你最近怎么样......”是什么意思? – 2014-09-25 11:03:15

回答

1

shapeList是静态的;)所以引用是共享的,并且在两个类上都是相同的。

+0

就是这样!谢谢:) (对我自己:要学会的热情:''''属性'的目的和效果') – 2014-09-25 11:21:13

相关问题