2011-06-16 12 views
8

मेरे पास मेरी युद्ध फ़ाइल के बाहर एक गुण फ़ाइल है जिसका उपयोग सिस्टम व्यवस्थापक द्वारा कुछ सिस्टम सुविधाओं को बंद करने के लिए किया जाता है। यह मेरी स्थानीय मशीन पर ठीक काम कर रहा है लेकिन जब हम विकास के माहौल में तैनात थे तो गुण फ़ाइल अपलोड नहीं की गई थी और एप्लिकेशन स्टार्टअप में विफल रहा था। मैं सोच रहा था कि मेरे अनुप्रयोग कॉन्टेक्स्ट में डिफ़ॉल्ट मानों को घोषित करने का कोई तरीका था जो आमतौर पर गुण फ़ाइल से आएगा।वसंत गुण फ़ाइल डिफ़ॉल्ट मान

मैं वर्तमान में गुण फ़ाइल को पढ़ने के लिए इस है:

<util:properties id="myProperties" location="file:${catalina.home}/webapps/myProperties.properties"/> 

यह जब तक कि हम गुण सही स्थान में फ़ाइल जगह याद के रूप में ठीक काम करता है। यदि यह फ़ाइल नहीं मिली है तो डिफ़ॉल्ट मान घोषित करने या शायद किसी भिन्न फ़ाइल से पढ़ने के लिए कोई तरीका है?

धन्यवाद

उत्तर

11

इसके बजाय <util:properties> एक PropertiesFactoryBeansetIgnoreResourceNotFound=true के साथ उपयोग का उपयोग करने का।

उदाहरण के लिए:

<bean id="myProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
    <property name="ignoreResourceNotFound"><value>true</value></property> 
    <property name="locations"> 
     <list> 
     <value>classpath:default.properties</value> 
     <value>file:${catalina.home}/webapps/myProperties.properties</value> 
     </list> 
    </property> 
</bean> 

नोट सूचीबद्ध फ़ाइलों का क्रम महत्वपूर्ण है। बाद की फ़ाइलों में गुण पहले के ओवरराइड करेंगे।

+0

ध्यान दें कि बीन को ' ​​ सत्य 'के साथ ठीक से परिभाषित किया गया है। –

+0

intellij $ {catalina.home} चर के साथ सही ढंग से हल नहीं हो रहा है, किसी भी पॉइंटर्स इसे काम करने के लिए? http://stackoverflow.com/questions/13606328/catalina-home-not-being-recognized-by-intellij – NimChimpsky

+0

आप उपयोग का उपयोग कर सकते हैं: अनदेखा-संसाधन-नहीं मिला = "सत्य" –

3

@ ericacm के जवाब पर एक अनुसरण रूप में, यदि आप चाहें तो आप भी चूक सीधे संदर्भ पर बजाय एक अलग default.properties फ़ाइल का उपयोग करने के लिए कॉन्फ़िगर कर सकते:

<bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean" 
    p:location="file:${catalina.home}/webapps/myProperties.properties" 
    p:ignoreResourceNotFound="true"> 
    <property name="properties"> 
    <props> 
     <prop key="default1">value1</prop> 
     ... 
    </props> 
    </property> 
</bean> 

ध्यान दें: इस के लिए उपयोग करता p-namespace स्थान और अनदेखा संसाधन नॉटफाउंड गुण।

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