2013-04-12 148 views
2

我正在使用spring expression從一些配置中讀取地圖。現在我該如何構建一個bean。春季初始化地圖

<bean id="xyz" class= "java.util.Map" > 
    <!-- how to pass $xyz to this --> 
    <!-- i know how to pass static entries to it using entry tag , but how abut map? !--> 
</bean> 

如何將我的地圖傳遞給bean xyz?

對於字符串以下代碼可以使用。

<bean id="x" class ="java.util.String > 
    <construtor-arg> $x 
    </constructort-arg> 
</bean> 

但在地圖沒有constuctor這需要地圖作爲INP

回答

4

使用Spring UTIL模式

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/util 
     http://www.springframework.org/schema/util/spring-util.xsd"> 


    <bean id="yourBean" class="yourBean"> 
    <property name="aPrameterOfTypeMapInYourBean"> 
     <map> 
     <entry key="first" value="hallo"/> 
     <entry key="second" value="world"/> 
     <entry key="third" value="that is easy"/> 
     <entry key="forth" value="and hopefully solve your problem"/> 

     <entry key="yourParam" value="$x"/> 

     </map> 
    </property> 
    </bean> 

</beans> 

Spring還支持收藏的合併(<map>應該有一個合併的屬性)。 因此,您需要定義兩張地圖,並將其中的一張指定爲另一張的父圖。

更多詳細信息:

+0

感謝replying.But我wnated知道我可以通過一個地圖的地圖。我alredy有地圖referance佔位符$ x.Now如何將此佔位符傳遞給另一個地圖?我探索了我是如何爲string.I要傳遞整個地圖到另一個地圖。請你幫忙 – user93796

+0

這就是要「收集合並」的意思。 – Ralph