2014-09-25 30 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

相關問題