2009-08-19 13 views
8

क्या वसंत संदर्भ फ़ाइल में परिभाषित करना संभव है, और < बीन> तत्वों में एक या अधिक गुणों को एक्सेस किया जा सकता है।वसंत में वैश्विक गुण

नीचे दिए गए उदाहरण सबसे अच्छा है कि मैं क्या जरूरत बताए गए हैं - मैं एक बार संपत्ति FOO को परिभाषित करने और फिर इसे मेरी विभिन्न < सेम> परिभाषाओं में कई बार संदर्भ लेना चाहते हैं:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 
    <properties> 
    <property name="FOO" value="BAR"> 
    </properties> 

    <bean name="TEST" class="mytest"> 
    <property name="MYFOO" value="${FOO}"/> 
    </bean> 
    <bean name="TEST1" class="mytest1"> 
    <property name="MYFOO" value="${FOO}"/> 
    </bean> 

</beans> 

किसी भी इनपुट बहुत सराहना की जाएगी।
धन्यवाद, केविन।

उत्तर

9

आप स्नैपली नामित PropertyPlaceHolderConfigurer का उपयोग करके ऐसा कर सकते हैं। वसंत दस्तावेज़ों में उदाहरण के लिए here देखें। आप वसंत बीन्स फ़ाइल में संपत्ति मूल्यों को स्वयं परिभाषित नहीं करते हैं, आप उन्हें एक .properties फ़ाइल में बाहरी करते हैं।

आप, मुझे लगता है, PropertyPlaceHolderConfigurer या उसके भाई-बहनों में से एक का उपयोग एक Properties वस्तु अपने स्प्रिंग फाइल के अंदर परिभाषित सुई सकता है, लेकिन है कि एक नहीं बल्कि अधिक वर्बोज़ समाधान होगा।

4

यदि आपको केवल उन्हें अपनी एक्सएमएल फ़ाइल में परिभाषित करने की आवश्यकता है और उन्हें कभी भी बदलना नहीं है (जैसे आप कॉन्फ़िगरेशन विकल्प बदल देंगे, पोर्ट या आईपी कहें), तो आप दिए गए प्रॉपर्टी के साथ क्लास स्ट्रिंग का एक बीन बना सकते हैं और फिर लिखना । कक्षा स्ट्रिंग का एक बीन बनाना सबसे सीधी चीज नहीं है, लेकिन यह करने योग्य है।

यदि आप कुछ और जटिल चाहते हैं (कहें कि आप जार के बाहर रहने वाली कॉन्फ़िगरेशन फ़ाइल चाहते हैं जहां बीन परिभाषा के साथ आपका एक्सएमएल है), तो आप PropertyPlaceholderConfigurer क्लास को देख सकते हैं।

3

बस कोई बाहरी गुण की जरूरत फ़ाइल के साथ वसंत एक्सएमएल फ़ाइल में सभी यह करने के लिए (हालांकि आप एक के साथ अगर वांछित पूरक कर सकते हैं)

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="properties"> 
     <util:properties> 
      <prop key="foo1">bar1</prop> 
      <prop key="foo2">bar2</prop> 
     </util:properties> 
    </property> 
</bean> 

तो आप उन्हें सिर्फ ${foo1} जहां के रूप में सामान्य की तरह का संदर्भ एक रास्ता मिल गया आवश्यक

+0

मुझे विश्वास नहीं है कि यह वास्तविकता काम करती है। [प्रलेखन] (http://docs.spring.io/spring/docs/2.0.8/reference/xsd-config.html) बताता है कि संपत्ति फ़ाइल स्थानों को सूचीबद्ध करने के लिए एक छोटा सा हाथ है। –

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