【发布时间】:2014-09-25 10:55:01
【问题描述】:
我对 Spring 还很陌生,并且 atm 正在检查 XML 驱动的 Spring。
现在我的问题是 Spring 以某种方式合并了来自同一个 bean-class 的两个不同的 bean-objects。它将它们视为一个单独的对象。
请看下面的代码:
<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) 返回 true。打印出其中一个列表会生成两种形状,shape1 和 shape2... 为什么?我很困惑……
通过同一个 xml 文件,我以相同的方式创建了一些其他 bean 对象(shape bean),没有任何麻烦或合并。
【问题讨论】:
-
向我们展示更多您的代码。您如何在代码中获得
shapeList1和shapeList2?发布一个完整的小程序来演示这个问题。 -
感谢您的快速反应! “你怎么……”是什么意思?