2010-06-18 15 views
10

वसंत ढांचा गैर-अंतर्निहित है।स्प्रिंग ढांचे को "गैर-घुसपैठ" क्यों कहा जाता है?

क्या आप इसे विस्तृत कर सकते हैं?

धन्यवाद :)

+2

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

+0

वसंत गैर-घुसपैठ कर सकता है जिसका अर्थ है कि आप उन घटकों को लिख सकते हैं जिन पर वसंत पर कोई निर्भरता नहीं है । हालांकि, इसके लिए मुद्रास्फीति की आवश्यकता होती है और हकीकत में, कई स्प्रिंग प्रोजेक्ट स्प्रिंग पर निर्भरता पेश करते हैं और यह कैसे काम करता है आईएमएचओ कई स्प्रिंग प्रोजेक्ट इसे गैर-घुसपैठ करने वाले कंटेनर के रूप में उपयोग नहीं करते हैं। –

+0

गंभीरता से, बिल्ली कैसे ढांचा घुसपैठ कर सकता है? डेवलपर जो भी रास्ता चुन सकता है उसे कोड कर सकता है, और जादू ढांचे का जादूत्मक रूप से पता चलता है कि उनका क्या मतलब है? विपणन कारणों के लिए – irreputable

उत्तर

9

यहाँ, "गैर दखल" का अर्थ है कि आपके आवेदन कोड स्प्रिंग ढांचे पर सीधे निर्भर करने के लिए की जरूरत नहीं है। कुछ भी जो उपयुक्त निर्भरताओं को इंजेक्ट कर सकता है (सैद्धांतिक रूप से) काम भी करेगा।

+1

पाठ्यपुस्तक उत्तर –

-2

साल पहले, यह ईजेबी जानवर था, जो बहुत "घुसपैठ" था। वसंत को सहायक कक्षाओं का एक बहुत ही सरल सेट माना जाता था, और यह ढांचे की तुलना में पुस्तकालयों की तरह था।

आज, वसंत नया जानवर बन जाता है। एक बिलियन डॉलर के कारोबार के रूप में, लोगों को लॉक करने में उनकी सबसे अच्छी रुचि है। हाँ, निश्चित रूप से, आपके पास निर्भरता समस्या नहीं है, और आप किसी भी समय वसंत छोड़ सकते हैं।

ईजेबी के साथ, कम से कम आपके पास कुछ विक्रेता चुनने हैं।

+1

यदि यह एक प्रश्न था, तो मैं इसे "व्यक्तिपरक और तर्कवादी" के रूप में बंद करने के लिए वोट दूंगा। सवाल "गैर घुसपैठ" की परिभाषा के लिए कहा। इसे "जानवरों" के साथ तुलना करना (जो भी आप इसका मतलब है) सहायक नहीं है। जानवर द्वारा – meriton

+0

मेरा मतलब है भारी भारी बदसूरत और * घुसपैठ *। अगर स्प्रिंग फैनबॉय को उस शब्द के साथ कोई समस्या है, तो शायद उन्हें मूल वसंत पुस्तक की जांच करनी चाहिए और देखें कि वसंत ने ईजेबी का वर्णन कैसे किया। – irreputable

1

वसंत का उपयोग अपने आवेदन कोड में वसंत ढांचे पर सीधे प्रत्यक्ष निर्भरता के बिना करना संभव है। इसका मतलब यह नहीं है कि कोड वसंत के बिना काम करना जारी रखेगा, क्योंकि वसंत द्वारा प्रदान की गई कार्यक्षमता को किसी अन्य आईओसी कंटेनर या कोड द्वारा प्रतिस्थापित करने की आवश्यकता होगी जो निर्भरता श्रृंखला में सभी ऑब्जेक्ट्स को तुरंत चालू करता है, लेकिन इसका मतलब यह है कि आप चुन सकते हैं वसंत के साथ तार, या किसी अन्य तंत्र के माध्यम से तार चीजें।

हालांकि, वसंत के साथ वास्तव में अनजान होने के लिए, आपको अपने सभी कॉन्फ़िगरेशन को अपने कोड के बाहर रखना होगा, जिसका अर्थ है सब कुछ के लिए एक्सएमएल का उपयोग करना। यह वसंत ऋतु में खूबसूरती से काम करता है, लेकिन डेवलपर्स के लिए गर्दन में दर्द होता है, और जावा 5 में एनोटेशन के व्यापक उपयोग के आगमन के बाद से, वास्तव में जावा रास्ता नहीं है। तो बसंत सीधे आपके कोड में तारों की चीजों के लिए कई एनोटेशन प्रदान करता है। यह स्पष्ट रूप से कोड के भीतर वसंत पर निर्भरता बना सकता है, हालांकि सभी वसंत टैग संकलित समय पर हल किए जाते हैं, इसलिए आप अभी भी वसंत जारों और इस तरह की किसी भी निर्भरता के बिना वसंत संदर्भ के बाहर अपनी कक्षाएं निष्पादित कर सकते हैं। साथ ही, जहां भी संभव हो, सामान्य वसंत एनोटेशन जेनेरिक जेईई एनोटेशन के साथ बदल दिया गया है। स्प्रिंग 3 के साथ, एप्लिकेशन संदर्भ को प्रारंभ करने के लिए केवल जेईई एनोटेशन और एक्सएमएल की सीमित मात्रा का उपयोग करना वास्तव में बहुत आसान है।

चीजों को करने के वसंत तरीके की सुंदरता यह है कि अंतर्निहित कार्यक्षमता जो सुविधा को लागू करती है अक्सर रनटाइम पर चुनी जा सकती है। यदि आप एक गैर-प्रबंधित कंटेनर में विकास के लिए एक गैर-प्रबंधित कंटेनर में उपयोग कर रहे हैं, तो मूल सत्र प्रबंधक का उपयोग करके, आप आसानी से कंटेनर प्रबंधित सत्रों में बिना किसी कोड को बदलने के स्विच कर सकते हैं यदि आपने ऐप को वसंत संभाल लेनदेन प्रबंधन देने के लिए कॉन्फ़िगर किया है। @Transactional के रूप में चिह्नित किए गए तरीके कोड के किसी भी बदलाव के बिना स्रोत के बावजूद स्वचालित रूप से एक सत्र और लेन-देन उठाएंगे। वास्तव में, यदि आप इतने इच्छुक हैं, तो आप आसानी से एक पूरी तरह से अलग ओआरएम ढांचे पर स्विच कर सकते हैं, हालांकि यह सच में एक बहुत ही दुर्लभ उपयोग केस है, इसलिए अधिकांश अनुप्रयोगों में ओआरएम फ्रेमवर्क विशिष्ट कोड और/या उनके डेटा एक्सेस में प्रश्न होंगे कोड।

वसंत और पुरानी शैली के 'घुसपैठ' ढांचे के बीच का अंतर यह है कि घुसपैठ के ढांचे को अक्सर आपको विशेष इंटरफेस को लागू करने की आवश्यकता होती है या इससे भी बदतर, आपको फ्रेमवर्क कार्यक्षमता तक पहुंचने के लिए विशेष आधार वर्गों से प्राप्त करने के लिए मजबूर किया जाता है। बाद के मामले में, न केवल आपके द्वारा उपयोग किए जा रहे ढांचे पर निर्भरता है, बल्कि यह आपकी कक्षा पदानुक्रम संरचना को भी सीमित रूप से सीमित करता है - एक ऐसी भाषा में जो केवल एक विरासत की अनुमति देता है। ईजेबी के हाल के संस्करण स्प्रिंग्स (और दूसरों के) कम-घुसपैठ मॉडल के लालित्य से सीखे और ईजेबी स्वयं ही बहुत कम घुसपैठ कर चुके हैं (यह सब पीओजेओ के बारे में है)।

मुझे वास्तव में अपरिवर्तनीय तर्क के लिए कोई समर्थन नहीं दिखता है कि वसंत अब अरबों डॉलर का जानवर है जो उपयोगकर्ताओं को ताला लगा देता है। वसंत, यदि कुछ भी हो, तो कभी भी कम कार्यक्षमता प्रदान करते समय कम घुसपैठ कर रहा है। वसंत में खुद को लॉक करना निश्चित रूप से संभव है, और बहुत से देव पूरी तरह से ऐसा करने के लिए पूरी तरह से तैयार हैं क्योंकि वसंत का उपयोग करने के रनटाइम ओवरहेड इतनी छोटी है कि हम में से अधिकांश ऐसे परिदृश्यों की कल्पना नहीं कर सकते हैं जिनमें हम हटा सकते हैं एक परियोजना से वसंत। अगर मैं पूरी तरह से प्रबंधित जेईई पर्यावरण चाहता हूं, तो मैं इसके लिए कॉन्फ़िगर कर सकता हूं (और किसी भी उपलब्ध विक्रेता के कंटेनर में चलाएं)। अगर मैं वसंत से आने वाले 100% विन्यास और रनटाइम प्रबंधन के साथ टोमकैट या जेटी में भागना चाहता हूं, तो मैं भी ऐसा कर सकता हूं। तो मैं आमतौर पर लॉक-इन के जोखिम पर वसंत-विशिष्ट कार्यक्षमता का उपयोग करने के लिए पूरी तरह से खुश हूं जब तक परियोजना की आवश्यकताओं को विशेष रूप से मना नहीं किया जाता है। वसंत रनटाइम पर बहुत कम ओवरहेड जोड़ता है, इसलिए यह कम जोखिम विकल्प है।

जब पुश धक्का आता है, तो मुझे लगता है कि स्प्रिंग ईजेबी की तुलना में सीखना कहीं अधिक आसान है। मैं या तो पद्धति के साथ एक ही चीजों को पूरा कर सकता हूं, लेकिन अगर मैं ईजेबी की तुलना में वसंत का उपयोग कर रहा हूं, तो ऐसे अनुभवों को लाया जा सकता है, जो असुरक्षित हैं, इसलिए भर्ती आसान है, लंबी अवधि के रखरखाव की लागत कम है, और रिलीज चक्र कम हैं।

3

एक गैर-अनुवांशिक ढांचे की मुख्य अपील यह है कि यह आपके डिजाइन और मॉडलिंग गतिविधियों के रास्ते से बाहर रहता है। यह पूरी तरह से रास्ते से बाहर रहता है जब तक आपको इसकी आवश्यकता न हो।

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