2012-05-03 8 views
6

मुझे यहां एक साधारण समस्या का सामना करना पड़ रहा है। मेरे पास दो गुण फ़ाइलें हैं जिन्हें मैं दो डेटा स्रोत बनाने के लिए पढ़ना चाहता हूं। फिर भी उन गुण फ़ाइलों में एक ही कुंजी है! मैं का उपयोग कर दोनों फ़ाइलों को पढ़ने में सक्षम हूँ:वसंत में एक ही कुंजी वाले एकाधिक गुणों को कैसे पढ़ा जाए?

<context:property-placeholder 
    location="classpath:foo1.properties,classpath:foo2.properties"/> 

लेकिन तब मैं सही मूल्य उपयोग करने में सक्षम नहीं कर रहा हूँ:

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> 
    <property name="driverClassName" value="${driver}" /> <!-- Which one? --> 
    <property name="url" value="${url}" />    <!-- Which one? --> 
    ... 
</bean> 

मैं अपने गुण कैसे पढ़ सकते हैं ताकि मैं जैसे चर का उपयोग कर सकते हैं ${foo1.driver} और जानें कि किसको बुलाया जाता है?

मदद के लिए धन्यवाद! इस तरह

उत्तर

6

कोशिश कुछ (नहीं परीक्षण किया):

<bean id="config1" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="ignoreUnresolvablePlaceholders" value="true"/> 
     <property name="placeholderPrefix" value="${foo1."/> 
     <property name="locations"> 
     <list> 
      <value>classpath:foo1.properties</value> 
     </list> 
     </property> 
    </bean> 

    <bean id="config2" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="ignoreUnresolvablePlaceholders" value="false"/> 
     <property name="placeholderPrefix" value="${foo2."/> 
     <property name="locations"> 
     <list> 
      <value>classpath:foo2.properties</value> 
     </list> 
     </property> 
    </bean> 
+0

अच्छा हैक! (+1) –

+0

यह पूरी तरह से काम करता है! आपका बहुत बहुत धन्यवाद! –

1

मुझे लगता है कि मैं क्या चाहते हैं का विस्तार PropertyPlaceHolderConfigurer है। जैसे आप विधि PropertiesLoaderSupport.loadProperties(Properties)

मैं क्या चाहते हैं एक संपत्ति "उपसर्ग" जोड़ है

public void setPrefixes(List<String> prefixes){ 
    this.prefixes = prefixes; 
} 

ओवरराइड और इन उपसर्गों से अधिक पुनरावृति गुण संसाधनों को पढ़ने के दौरान करने के लिए है

मेरे लिए

यह लग रहा है।

संबंधित मुद्दे