मेरे पास स्प्रिंग बीन्स का एक गुच्छा है जो एनोटेशन के माध्यम से क्लासपाथ से उठाया जाता है, जैसे
@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 />।