/ / स्प्रिंग शेड्यूल किए गए कार्य डेटा स्रोत - स्प्रिंग, शेड्यूल किए गए कार्य, डेटा स्रोत, एप्लिकेशनकनेक्ट

स्प्रिंग शेड्यूल-कार्य डेटासोर्स - वसंत, अनुसूचित-कार्य, डेटासोर्स, एप्लिकेशन कॉन्टेक्स्ट

मैं अनुसूचक विधि के अंदर ApplicationContext बनाना चाहता हूं। यह संभव है ? )

 <task:annotation-driven executor="executor" scheduler="scheduler"/>
<task:executor id="executor" pool-size="5"/>
<task:scheduler id="scheduler" pool-size="10"/>

और मेरी कक्षा:

@Scheduled(fixedDelay=100)
public void doSomething() {

}

मैं उसे कैसे जोड़ूं? :

private ApplicationContext applicationContext;
@Override
public void setApplicationContext(final ApplicationContext applicationContext) throws BeansException {

this.applicationContext = applicationContext;
}

यह कोड का उपयोग करें:

JDBCEntityDAO obj = (JDBCEntityDAO) applicationContext.getBean("taEntityDAO");

कृपया मदद करें

उत्तर:

जवाब के लिए 3 № 1

बस @Autowired या किसी अन्य निर्भरता जोड़ेंअपनी नौकरी वर्गों के लिए इंजेक्शन एनोटेशन (@Scheduled - एनोटेट तरीकों के साथ)। यदि आपको ApplicationContext के संदर्भ की आवश्यकता है, तो अपनी नौकरी ApplicationContextAware इंटरफ़ेस को लागू करें। यह स्प्रिंग देशी शेड्यूलर के साथ काम करेगा। यदि आप क्वार्ट्ज का उपयोग करते हैं, तो आपको थोड़ा और काम करना होगा, यहां देखें वसंत में एक क्वार्ट्ज नौकरी में बीन संदर्भ इंजेक्षन? । वैसे, आप सेम नाम इंजेक्ट करने के लिए @Resourse एनोटेशन का उपयोग कर सकते हैं।