मेरे पास स्प्रिंग बीन्स का एक गुच्छा है जो एनोटेशन के माध्यम से क्लासपाथ से उठाया जाता है, जैसे
@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
// Implementation omitted
}
स्प्रिंग एक्सएमएल फ़ाइल में, प्रॉपर्टीहोल्डर धारकऑनफिगरर परिभाषित है:
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="/WEB-INF/app.properties" />
</bean>
मैं ऊपर दिखाए गए बीन में app.properites से गुणों में से एक को इंजेक्ट करना चाहता हूं। मैं बस ऐसा कुछ नहीं कर सकता
<bean class="com.example.PersonDaoImpl">
<property name="maxResults" value="${results.max}"/>
</bean>
क्योंकि PersonalDaoImpl स्प्रिंग XML फ़ाइल में नहीं है (इसे एनोटेशन के माध्यम से क्लासपाथ से उठाया गया है)। मुझे निम्नलिखित के रूप में मिला है:
@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
@Resource(name = "propertyConfigurer")
protected void setProperties(PropertyPlaceholderConfigurer ppc) {
// Now how do I access results.max?
}
}
लेकिन यह मेरे लिए स्पष्ट नहीं है कि मैं उस संपत्ति का उपयोग कैसे कर सकता हूं जिसमें मेरी दिलचस्पी है ppc
?
PropertyPlaceholderConfigurer
अब अनुशंसित वर्ग नहीं है। PropertySourcesPlaceholderConfigurer
इसके बजाय प्राथमिकता दें । किसी भी स्थिति में, आप XML की छोटी परिभाषा का उपयोग कर सकते हैं <context:property-placeholder />
।