2010-05-13 20 views
6

मुझे पता है कि वसंत इंटरफ़ेस इंजेक्शन का समर्थन नहीं करता है और मैंने इसे कई बार पढ़ा है।वसंत वास्तव में इंटरफ़ेस इंजेक्शन का समर्थन नहीं करता है?

लेकिन आज जब मैं मार्टिन फाउलर (link) द्वारा आईओसी के बारे में एक लेख में आया, तो ऐसा लगता है कि स्प्रिंग में एप्लिकेशनकॉन्टेक्स्टवेयर का उपयोग इंटरफ़ेस इंजेक्शन के समान कुछ है।

जब कभी भी हमारे वसंत बीन में वसंत संदर्भ संदर्भ की आवश्यकता होती है, तो हम एप्लिकेशनकॉन्टेक्स्टवेयर को कार्यान्वित करेंगे और setAplicationContext (ApplicationContext संदर्भ) विधि को लागू करेंगे, और हम कॉन्फ़िगरेशन फ़ाइल में बीन शामिल करेंगे। क्या यह इंटरफेस इंजेक्शन जैसा नहीं है, जहां स्प्रिंग को इंजेक्ट करने के लिए कह रहा है (या), कहें, इस बीन में संदर्भ का संदर्भ पास करें?

या मैं यहाँ कुछ याद कर रहा हूँ? किसी भी जानकारी के लिए धन्यवाद!

ManiKanta

+3

लगता है जैसे आप कुछ बुरी चीजें पढ़ रहे हैं, वसंत बहुत अधिक * करता है * इंटरफ़ेस इंजेक्शन का समर्थन करता है। – skaffman

+1

'इंटरफेस इंजेक्शन' से आपका क्या मतलब है? मेरे पास केवल बीन के लगभग 100 उदाहरण हैं जो शून्य सेट को परिभाषित करते हैं कुछ (कुछ) जहां कुछ इंटरफ़ेस है, कक्षा नहीं है, और वसंत इंटरफ़ेस को लागू करने वाले वर्ग उदाहरणों को इंजेक्ट करने के लिए पूरी तरह से खुश है? – bmargulies

+0

@ स्काफमैन मैंने नहीं देखा कि वसंत स्प्रिंग डॉक्स में भी इंटरफ़ेस इंजेक्शन का समर्थन करता है (http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html# बीन्स-फैक्ट्री-सहयोगी) – manikanta

उत्तर

6

तुम्हारा मतलब इंजेक्शन as defined on wikipedia इंटरफेस हैं, तो वसंत इसके लिए ResourceLoaders, ApplicationContexts, MessageSource, और दूसरों के बॉक्स से बाहर, क्रमशः का समर्थन करता है, इंटरफेस ResourceLoaderAware, , MessageSourceAware साथ।

BeanPostProcessor पंजीकृत करके नए इंटरफेस के साथ इस तंत्र को विस्तारित करना भी संभव है।

वसंत संदर्भ मैनुअल explains यह क्षमता (और जब किसी को इसका उपयोग नहीं करना चाहिए) स्पष्ट रूप से। बीटीडब्लू, मुझे आम तौर पर वसंत संदर्भ पुस्तिका मिलती है जो 'इंटरनेट पर कोई' कहता है उससे ज्यादा विश्वसनीय है।

+1

हाँ! हालांकि वसंत वास्तव में इंटरफेस इंजेक्शन का समर्थन नहीं करता है, फिर भी हम ऑटोवॉयरिंग तकनीक (http://opensource.atlassian.com/confluence/spring/display/DISC/Adding+Interface+Injection+to+Spring+ का उपयोग करके व्यावहारिक रूप से वही प्रभाव प्राप्त कर सकते हैं।)। बीटीडब्ल्यू, मार्टिन फाउलर वह व्यक्ति है जिसने डीआई की शुरुआत की थी। यही है ना तो, हो सकता है कि हम उसका लेख देख सकें। हाँ, वह लेख सामान्य रूप से है। तो सभी लेख की सामग्री वसंत मामले के लिए अच्छा नहीं रख सकती है। अगर कुछ चीज सही नहीं है तो मुझे सही करें! – manikanta

संबंधित मुद्दे