क्या संपत्ति प्लसहोल्डर से @Autowired के माध्यम से एक बीन में एक संपत्ति जोड़ना संभव है?@Autowired और PropertyPlaceholder
<context:component-scan base-package="..."/>
क्या संपत्ति प्लसहोल्डर से @Autowired के माध्यम से एक बीन में एक संपत्ति जोड़ना संभव है?@Autowired और PropertyPlaceholder
<context:component-scan base-package="..."/>
वसंत 3.0 (मैं मील का पत्थर 3 से लगता है) आप @value ("$ उपयोग कर सकते हैं {foo.bar: मैं xml संदर्भ-config में इस तरह से यह इंजेक्षन नहीं कर सकते क्योंकि सेम लोड किए गए हैं } ") PropertyPlaceholder से गुणों का उपयोग करने के लिए।
एक वसंत 2.5 दृष्टिकोण:
@Component
public class Foo {
@Autowired
@Qualifier("myFlag")
private Boolean flag;
/* ... */
}
और संदर्भ
<context:component-scan base-package="..."/>
<context:property-placeholder location="classpath:app.properties"/>
<!-- the flag bean -->
<bean id="myFlag" class="java.lang.Boolean">
<constructor-arg value="${foo.bar}"/>
</bean>
चीयर्स
वैकल्पिक रूप से +1, और थोड़ा कम शब्दशः, '@ संसाधन (नाम = "myFlag") ' – skaffman
आप मुझे इस के लिए एक उदाहरण दे सकते हैं? मैं वसंत 3 आरसी 3 का उपयोग कर रहा हूं और जब मैं इस तरह से कोशिश करता हूं (उदाहरण के लिए @ वैल्यू ("$ {foo.bar}")) तो मेरी विशेषता मान "foo.bar" हो जाती है ... – woezelmann
हाँ, मान लीजिए कि आपके पास संपत्ति प्लेसहोल्डर है इस तरह कॉन्फ़िगर किया गया: '<संदर्भ: property-placeholder location =" classpath: app.properties "/>' आप 'app.properties' से key 'foo.bar' के साथ प्रॉपर्टी के मान को इंजेक्ट कर सकते हैं: 'वर्ग MyBean { @ वैल्यू ($ {"foo.bar"} निजी स्ट्रिंग मान; } ' – semberal
प्रारूपण के लिए खेद है, मैं यहां नया हूं :) – semberal