विभिन्न चरणों के साथ एक चरणबद्ध अनुप्रयोग संदर्भ की कल्पना करो। हम आवश्यक बुनियादी ढांचे को परिभाषित करने के लिए शुरुआती चरण से शुरू करते हैं। एक्सएमएल अनुप्रयोग संदर्भ अनुक्रमिक रूप से लोड होते हैं।स्प्रिंग एप्लिकेशन संदर्भ में पहले से परिभाषित सूचियों और मानचित्रों का विस्तार कैसे करें?
इन फ़ाइलों को विभाजित करने का कारण एक एक्सटेंशन/प्लगइन तंत्र है।
स्टेज 01-default-configuration.xml
हम तैयार करने और आईडी exampleMapping
के साथ नक्शा घोषित डेटा के साथ बाद में उन्हें बढ़ाने के लिए।
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="[...]">
<util:map id="exampleMapping" />
</beans>
स्टेज 02-कस्टम configuration.xml(वैकल्पिक)
हम exampleMapping
कॉन्फ़िगर और एक प्रवेश जोड़ें।
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="[...]">
<util:map id="exampleMapping">
<entry key="theKey" value="theValue" />
</util:map>
</beans>
स्टेज 03-मेक-उपयोग के- configuration.xml(अनिवार्य)
परिभाषित नक्शा exampleMapping
का उपयोग करता है, चाहे वह customly कॉन्फ़िगर किया गया है या यह अभी भी खाली घोषित नक्शा है।
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="[...]">
<bean id="exampleService" class="com.stackoverflow.example.ExampleService">
<property name="mapping" ref="exampleMapping" />
</bean>
</beans>
समस्या यहाँ है, यह है कि यह पहले चरण के बाद exampleMapping
नक्शा करने के लिए प्रविष्टियों को जोड़ने के लिए संभव नहीं है। वसंत एक अपवाद फेंकता है कि आईडी exampleMapping
वाला मानचित्र पहले से मौजूद है। यदि हम पहले चरण को छोड़ देते हैं तो नक्शा अव्यवस्थित है और तीसरा चरण exampleMapping
को हल नहीं कर सकता है जो अपवाद भी उत्पन्न करता है।
मैं इस मुद्दे को कैसे हल कर सकता हूं? मैंने Collection merging (वसंत दस्तावेज़) पढ़ा लेकिन इससे मदद नहीं मिली। क्या इसका उपयोग करने से पहले नक्शे/सूचियों में मूल्यों को बाद में जोड़ना संभव है?
धन्यवाद!
"पहले चरण के बाद प्रविष्टियों के साथ बढ़ाया नहीं जा सकता" से आपका क्या मतलब है? – skaffman
@skaffman: क्षमा करें, ftfy। – codevour