में एकाधिक गुण फ़ाइलें मैं कई अलग-अलग मॉड्यूल के साथ एक परियोजना पर काम कर रहा हूं, प्रत्येक में अपने स्वयं के अनुप्रयोग संदर्भ गुण फ़ाइलें हैं। मैं इन सभी गुणों को लोड करने में सक्षम होना चाहता हूं ताकि वे स्प्रिंग द्वारा प्लेसहोल्डर रिज़ॉल्यूशन के लिए उपयोग किए जा सकें।स्प्रिंग 3.0
पिछला सवाल यह उल्लेख किया है और वहाँ एक अच्छा ब्लॉग पोस्ट here का वर्णन करता है कि कैसे, प्रत्येक संदर्भ में एक PropertyPlaceholderConfigurer का उपयोग प्राथमिकता के आधार पर उन्हें ऑर्डर और सच करने के लिए ignoreUnresolveablePlaceholders सेट इतना है कि इन गुणों फ़ाइलों उड़ाने के बिना संदर्भ पार कर सकते हैं एक दूसरे के लिए है अप।
हालांकि, यह मेरी समस्या का समाधान नहीं करता है क्योंकि मैं कुछ कस्टम प्लेसहोल्डर रिज़ॉल्यूशन (कुछ यामल फ़ाइलों से मैं पार्सिंग) के लिए लोड कर रहे गुणों का उपयोग करने में सक्षम होना चाहता हूं। इसके लिए एक PropertyPlaceholderHelper का उपयोग करने की आवश्यकता है, जिसके लिए गुण ऑब्जेक्ट को तर्क के रूप में आवश्यक है।
जहां तक मेरा बता सकते हैं, संभावित समाधान हैं:
1) मर्ज सभी गुण एक गुण सेम में दायर। यह तो, (वसंत के आंतरिक प्लेसहोल्डर संकल्प के लिए) एक PropertyPlaceholderConfigurer और (मेरे अपने प्लेसहोल्डर संकल्प के लिए) एक PropertyPlaceholderHelper के साथ प्रयोग किया
2) किसी भी तरह के गुण का सेट, और उनके पदानुक्रमित व्यवस्था उपयोग करने के लिए एक PropertyPlaceholderHelper कॉन्फ़िगर बनाने के लिए इस्तेमाल किया जा सकता है यदि मैं आगे बढ़ता हूं और उस ब्लॉग पोस्ट की सलाह का पालन करता हूं तो PropertyPlaceholdConfigurers द्वारा आयोजित किया जाता है।
दुर्भाग्य से मैं इनमें से किसी एक को कैसे काम नहीं कर सकता। किसी भी तरह की सहायता का स्वागत किया जाएगा!
पीएस ऐसा लगता है कि स्प्रिंग 3.1 यहां एक बड़ी मदद होगी ... दुर्भाग्यवश हम अभी तक इसे स्थानांतरित करने के लिए तैयार नहीं हैं इसलिए मुझे अभी भी मुझे ज्वार करने के लिए एक समाधान की आवश्यकता है!
**** संपादित ****
जवाब अब तक के लिए धन्यवाद। वे अच्छे जवाब हैं लेकिन दुर्भाग्य से मेरी मदद नहीं करेंगे क्योंकि (और इससे पहले उल्लेख नहीं करने के लिए क्षमा चाहते हैं) हम वर्तमान में गैर-कोर मॉड्यूल से हमारी परियोजना के मूल मॉड्यूल को अलग करने की प्रक्रिया में हैं। इसका मतलब है कि कोर मॉड्यूल, और उनके अनुप्रयोग संदर्भ, गुण फ़ाइलों के नाम हार्ड कोड नहीं कर सकते हैं। निराशाजनक रूप से, स्प्रिंग का क्लासपाथ स्कैनिंग टूटा हुआ प्रतीत होता है, इसलिए "क्लासपाथ *: * गुण" प्रकार के वाइल्डकार्ड केवल व्यक्तिगत मॉड्यूल का निर्माण करते समय काम करते हैं, शीर्ष स्तर की परियोजना नहीं (मुझे विश्वास है कि यह एक ज्ञात मुद्दा है)।
प्रश्न यह है कि कोर मॉड्यूल में परिभाषित मौजूदा गुण फ़ाइलों में गैर-कोर मॉड्यूल में परिभाषित गुण फ़ाइलों को कैसे विलय करना है। फिलहाल मैं एक बीनपोस्टप्रोसेसर के साथ आगे बढ़ रहा हूं - मैं बस सोच रहा हूं कि ऐसा करने के लिए एक आसान/अधिक सुरुचिपूर्ण तरीका है?
धन्यवाद
मुझे लगता है कि आपको कम से कम एक स्थिर डीआईआर सेगमेंट प्रदान करने की आवश्यकता है, इसलिए 'क्लासपाथ *: *। गुण' काम नहीं करेगा लेकिन 'classpath *: config/*। Properties' होगा। – mrembisz