2011-12-15 6 views
7

इससाधारण आम आदमी के शब्दों में क्या वसंत वसंत में मिलता है?

AutomobileDriver ad=(AutomobileDriver)appContext.getBean("increaseSpeed"); 

की तरह कोड की एक पंक्ति पर विचार मान लें वहाँ एक IncreaseSpeed वर्ग जो AutomobileDriver वर्ग

getBean क्या करता है से विरासत है? इसका मुख्य कार्य क्या है?

उत्तर

4

"सरल आम आदमी की दृष्टि" में:

  1. मतलब यह है कि वसंत एक वस्तु उदाहरण (एक एक्सएमएल कॉन्फ़िग फ़ाइल में संभवतः) बनाने के लिए बताया गया था कि आईडी "के साथ के रूप में (वसंत) के द्वारा की पहचान की है increaseSpeed "और AutomobileDriver का वर्ग या अभिभावक वर्ग है।

  2. आप डिफ़ॉल्ट रूप से (ए) के संदर्भ में वसंत संदर्भ पूछ रहे हैं, पहले निर्मित ऑब्जेक्ट (इसे सिंगलटन कहा जाता है) या (बी) उस ऑब्जेक्ट (प्रोटोटाइप) का एक नया उदाहरण।

2

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

असल में, आपका कोड बीन का उदाहरण "वृद्धि स्पीड" के साथ वापस करेगा।

+0

यह अभी भी नियंत्रण में उलटा है, क्योंकि कार्यान्वयन का निर्णय कहीं और किया जाता है। यह अधिक मैन्युअल श्रम है, लेकिन अवधारणात्मक रूप से वही है। –

+0

@ डेव न्यूटन काफी नहीं है, क्योंकि एप्लिकेशन आईओसी कंटेनर से अवगत है। एक क्लासिक आईओसी परिदृश्य में, सेम नहीं जानते कि निर्भरता कहां से आती है। –

+0

@ सेनपैट्रिकफ्लॉइड ट्रू। –

1

एक बीन एक घटक है जो कुछ कार्यक्षमता प्रदान करता है, बीन का नाम इंगित करता है कि यह गति में वृद्धि होगी।

उन घटकों को 'एप्लिकेशन संदर्भ' नामक संदर्भ में पंजीकृत किया गया है और नाम से देखा जा सकता है। इसलिए यदि आप कुछ ऐसा करने के लिए अपने ऐप्स-संदर्भ पर गति को देखना चाहते हैं जो ऐसा कर सकता है।

अधिक tecnical:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/

2

इस कोड सेम increaseSpeed स्प्रिंग आवेदन प्रसंग से नामित अनुरोध कर रहा है। एप्लिकेशन संदर्भ के बारे में सोचें उपलब्ध वस्तुओं के पूल के रूप में, जो आपके स्प्रिंग कॉन्फ़िगरेशन एक्सएमएल से कॉन्फ़िगर किया गया है। जब अनुप्रयोग संदर्भ शुरू होता है, तो यह कॉन्फ़िगरेशन में सेम बनाता है। यह कॉल बस उस व्यक्ति के लिए पूछता है जो पहले से मौजूद है। एप्लिकेशन संदर्भ इस "बीन" को java.lang.Object के रूप में लौटाता है, इसलिए आपको इसे उचित प्रकार पर डालना होगा।

आप इस कॉल को स्प्रिंग एप्लिकेशन में प्रवेश बिंदु के रूप में देख सकते हैं। एप्लिकेशन संदर्भ से पहली ऑब्जेक्ट प्राप्त करने के लिए इस कॉल की आवश्यकता है - वहां से, इस ऑब्जेक्ट में अन्य ऑब्जेक्ट्स के लिंक हो सकते हैं जो स्प्रिंग द्वारा इंजेक्शन दिए गए हैं।

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