से संबंधित पथ का उपयोग कर फ़ाइल मैं अपनी स्प्रिंग कॉन्फ़िगरेशन फ़ाइल के अंदर से अलग गुण फ़ाइल में गुणों को स्थानांतरित कर रहा हूं। यहसंदर्भ स्प्रिंग गुण फ़ाइल कॉन्फ़िगरेशन फ़ाइल
<bean class="org.springframework.beans.factory.config.PropertyPlaceHolderConfigurer">
<property name="location" value="file:properties/${CONFIG_MODE}/service.properties" />
</bean>
साथ कॉन्फ़िग फ़ाइल में शामिल है यह खड़ा के रूप में, गुण फ़ाइल का स्थान सर्वर प्रक्रिया के वर्तमान कार्यशील निर्देशिका के सापेक्ष है।
यह आवश्यकता बनाता है कि प्रक्रिया एक विशिष्ट कार्य निर्देशिका से शुरू की जानी चाहिए, और इससे भी बदतर (स्वीकार्य रूप से दूरस्थ) संभावना है कि यह एक पूरी तरह से अलग गुण फ़ाइल ले सकता है - उदाहरण के लिए यदि यह शुरू किया गया था कार्यशील निर्देशिका सेवा के पुराने संस्करण पर सेट है।
मैं कॉन्फ़िगरेशन फ़ाइल वाली निर्देशिका के सापेक्ष पथ का उपयोग करके गुण फ़ाइल का संदर्भ देना चाहता हूं।
FileSystemResource पर देखकर, ऐसा लगता है कि createRelative मुझे जो चाहिए वह हो सकता है, लेकिन मैं यह नहीं समझ सकता कि कॉन्फ़िगरेशन फ़ाइल में इसका उपयोग कैसे किया जाए।
धन्यवाद,
स्टीव
अच्छा समाधान - धन्यवाद। एकमात्र समस्या (और मैं मानता हूं कि यह कोई गंभीर समस्या नहीं है) यह है कि कभी-कभी यह गुण फ़ाइल को सीधे देखने/संपादित करने में सक्षम होता है - उदाहरण के लिए आपात स्थिति में, या कुछ त्वरित परीक्षण करने के लिए। जार के अंदर होने से यह रोका नहीं जाता है, लेकिन यह थोड़ा बोझिल बनाता है। – stevec
@stevec: इसे एक जार, फ़ाइल के अंदर नहीं होना चाहिए, यह क्लासपाथ पर मौजूद फाइल सिस्टम निर्देशिका के अंदर आसानी से हो सकता है। – skaffman
एक बार जब मैं '@Value (" $ {thing.inside.service.properties} ") का उपयोग करता हूं तो यह काम करेगा? –