को प्रॉपर्टी जोड़ें मैं एक आवेदन जहां एक संपत्ति प्लेसहोल्डर, कॉन्फ़िगर गुण को पढ़ने के लिए प्रयोग किया जाता है applicationContext.xml
में है:संपत्ति प्लेसहोल्डर
...
<context:property-placeholder
location="classpath*:META-INF/spring/*.properties"/>
...
आवेदन एक बिलाव में चलता है और पैरामीटर context.xml में परिभाषित का उपयोग करता है। एप्लिकेशन सामान्य पैरामीटर (@Value(${cfma.applicationUrl})
) जैसे इस पैरामीटर तक पहुंचता है। यह काम करता है
मेरे परीक्षण मामलों में मेरे पास यह tomcat गुण नहीं है, इसलिए मैं उन्हें एप्लिकेशन संदर्भ में "मैन्युअल" जोड़ना चाहता हूं। लेकिन यह भी सामान्य applicationContext.xml
testContext.xml लोड:
<import resource="classpath:/META-INF/spring/applicationContext.xml" />
<context:property-placeholder properties-ref="simulatedTomcatProperties"/>
<util:properties id="simulatedTomcatProperties">
<prop key="cfmt.applicationBaseUrl">localhost:8080/cfmt</prop>
</util:properties>
अब मैं दो संदर्भ है
: संपत्ति-प्लेसहोल्डर है और इस (बेशक) काम नहीं करता है - तो मेरी सवाल है, मैं कौन विस्तार कर सकते हैं मेरे परीक्षण में "सामान्य" संपत्ति-प्लेसहोल्डर में गुण?
अधिक मैं क्या जरूरत का स्पष्टीकरण:
- (विकास के वातावरण के साथ-साथ) उत्पादक पर्यावरण बिलाव पैरामीटर के माध्यम से कुछ गुण परिभाषित करता है। इसलिए वे किसी भी गुण फ़ाइल में शामिल नहीं हैं, लेकिन तंत्रिका रहित उन्हें सामान्य गुणों (
@Value(${cfma.applicationUrl})
) तक पहुंचा जा सकता है। इसके अलावा कोई फॉलबैक नहीं होना चाहिए, अगर गुणों को टॉमकैट में परिभाषित नहीं किया गया है, तो एप्लिकेशन शुरू नहीं होना चाहिए! - परीक्षण मामलों में (जो वसंत संदर्भ का उपयोग करते हैं) मुझे कुछ संपत्ति (cfma.applicationUrl) डालने चाहिए ताकि इसे एनोटेटेड चर में इंजेक्शन दिया जा सके। लेकिन अगर मैं एक दूसरे
context:property-placeholder
जोड़ने वे विलय कर रहे हैं नहीं: https://jira.springsource.org/browse/SPR-4881 पर
@See टिप्पणियाँ - वे कहते हैं कि व्यवहार की व्याख्या।
जब मैं बिलाव पैरामीटर मैं somethink के बारे में इस तरह बात कर रहा हूँ के बारे में बात:
context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Parameter name="cfmt.applicationBaseUrl"
value="http://localhost/demoApp" override="false"/>
</Context>
http://stackoverflow.com/questions/6375016/spring-properties-file-setting-default-values देखें इसे प्रभावी ढंग से आप कई संपत्तियां हैं स्थानों परिभाषित करने के लिए अनुमति देता है। गुम गुण फ़ाइलों को अनदेखा किया जाता है, और सूचीबद्ध अंतिम वैध फ़ाइल लोड हो जाती है। – Fil
@ फिलिप: मेरा प्रश्न एकाधिक स्थान के बारे में नहीं है। मैं एकाधिक संपत्ति प्लेसहोल्डर कॉन्फ़िगरर के साथ अटक गया। और मैं अपने test-context.xml – Ralph
क्षमा से "सामान्य" ऐप संदर्भ संपत्ति प्लेसहोल्डर कॉन्फ़िगरर की कॉन्फ़िगरेशन को बढ़ाने/बदलने का एक तरीका ढूंढ रहा हूं। मेरी टिप्पणी बहुत स्पष्ट नहीं थी, मैं एकाधिक गुण फ़ाइलों को निर्दिष्ट करने का एक तरीका नहीं सुझा रहा था, लेकिन सशर्त गुण लुकअप करने का एक तरीका था। एक विस्तारित उत्तर नीचे है। – Fil