उपयोग कर सकते हैं। मैंने सोचा कि स्पेल (स्प्रिंग एक्सप्रेशन भाषा) का उपयोग करके एक और विकल्प इंगित करना फायदेमंद होगा - यदि आपको विशिष्ट गुणों की आवश्यकता है तो उन्हें विशिष्ट बीन गुणों पर @ वैल्यू एनोटेशन का उपयोग करके इंजेक्शन दिया जा सकता है;
class SomeClass {
@Value("#{serverProperties['com.svr.prop']}")
private String aServerCfgProperty;
@Value("#{someConfig['another.config.setting']}")
private String someOtherProperty;
}
आप अनुक्रमण वाक्य रचना ['index.val']
उपयोग करने के लिए आप बस उसे सीधे प्राप्त कर सकते हैं की आवश्यकता नहीं है;
@Value("#{someConfig}")
private Properties someConfig
@Value("#{serverProperties}")
private Properties svrProps;
मैं इस बल्कि उपयोगी पाया और गुण का उपयोग करने से दूर चले गए सीधे @ संसाधन के माध्यम से इंजेक्शन वस्तु/@ Autowired।
अनुक्रमित गुण ऑब्जेक्ट के साथ @Value
का उपयोग करने का एक और अच्छा कारण यह है कि कुछ आईडीई (उदा। इंटेलिजे) वास्तविक संपत्ति नामों को दोबारा कर सकते हैं यदि आपके पास प्रोजेक्ट में .properties फ़ाइल भी अच्छी है। स्पेल अनुक्रमण ['key']
सेम का उपयोग करने - एक और टिप EProperties की तरह कुछ (जो निवासी जावा गुण वस्तु फैली) यदि आप वसंत के PropertiesPlaceholderConfigurer
वर्ग (जो दुर्भाग्य से नहीं करता है उसके गुण को बेनकाब का उपयोग किए बिना गुण फ़ाइलों में शामिल किए जाने/नेस्टिंग/प्रतिस्थापन क्या करना चाहते हैं का उपयोग करने के लिए है Map<>
का उदाहरण होना चाहिए यानी जावा प्रॉपर्टी ऑब्जेक्ट का नक्शा बढ़ाएं) ...
अंत में, स्पेल के साथ एक और साफ सुविधा है कि आप सीधे सेम के गुणों तक पहुंच सकते हैं। तो उदाहरण के लिए कहें कि ऊपर दिए गए उदाहरण में SomeClass
एक स्प्रिंग बीन उदा। someClass
फिर एक और बीन क्लास में हम कर सकते थे;
@Value("#{someClass.someOtherProperty}")
private String injectedBeanProp
तुम भी एक गेटर विधि कह सकते हैं:
@Value("#{someClass.getSomeOtherProperty()}")
private String injectedBeanProp
स्पेल गाइड यहाँ देखें; http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#expressions
जानकारी और कोड उदाहरण के लिए धन्यवाद! काम करता है – NightWolf