2010-09-28 8 views
17

एक सामान्य उपयोग-मामला: मेरे पास applicationContext.xml और dispatcher-servlet.xml है। माता पिता संदर्भ (applicationContext.xml) में मेरे पास है:<संदर्भ: संपत्ति-प्लेसहोल्डर> गुण बच्चे (वेब) संदर्भ के लिए सुलभ नहीं हैं

<context:property-placeholder location="classpath:application.properties" /> 

हालांकि, गुण यह द्वारा लोड वेब संदर्भ के लिए सुलभ नहीं हैं - न एक्सएमएल में, और न ही @Value का उपयोग कर। (वे सिर्फ हल कर रहे हैं नहीं और अभिव्यक्ति (${varName}) के बजाय मूल्य के रूप में सेट किया गया है)

मैं इसे चारों ओर के रूप में अच्छी <context:property-placeholder>dispatcher-servlet.xml को जोड़कर काम किया, लेकिन मैंने सोचा कि क्या:

  1. यह अपेक्षित व्यवहार
  2. बच्चों के संदर्भ में गुणों का पर्दाफाश करने का कोई बेहतर तरीका नहीं है।

उत्तर

16

हाँ, यह एक अपेक्षित व्यवहार है। <context:property-placeholder> एक BeanFactoryPostProcessor बनाता है जो प्रति-संदर्भ आधार पर लागू होता है। तो, आपको वैसे भी बाल संदर्भ में एक पोस्टप्रोसेसर की आवश्यकता होगी।

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