स्प्रिंग फ्रेमवर्क - अवलोकन

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

स्प्रिंग फ्रेमवर्क एक ओपन सोर्स जावा प्लेटफॉर्म है। यह शुरुआत में रॉड जॉनसन द्वारा लिखा गया था और पहली बार जून 2003 में अपाचे 2.0 लाइसेंस के तहत जारी किया गया था।

आकार और पारदर्शिता की बात करें तो स्प्रिंग हल्का होता है। स्प्रिंग फ्रेमवर्क का मूल संस्करण 2MB के आसपास है।

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

स्प्रिंग फ्रेमवर्क का उपयोग करने के लाभ

स्प्रिंग फ्रेमवर्क का उपयोग करने के कुछ महान लाभों की सूची निम्नलिखित है -

  • स्प्रिंग डेवलपर्स को POJOs का उपयोग करके उद्यम-श्रेणी के अनुप्रयोगों को विकसित करने में सक्षम बनाता है। केवल POJOs का उपयोग करने का लाभ यह है कि आपको एक EJB कंटेनर उत्पाद जैसे एप्लिकेशन सर्वर की आवश्यकता नहीं है, लेकिन आपके पास केवल एक मजबूत सर्वलेट कंटेनर जैसे Tomcat या कुछ वाणिज्यिक उत्पाद का उपयोग करने का विकल्प है।

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

  • वसंत पहिया को सुदृढ़ नहीं करता है, इसके बजाय यह वास्तव में कुछ मौजूदा तकनीकों जैसे कि कई ओआरएम फ्रेमवर्क, लॉगिंग फ्रेमवर्क, जेईई, क्वार्ट्ज और जेडडीके टाइमर, और अन्य दृश्य प्रौद्योगिकियों का उपयोग करता है।

  • स्प्रिंग के साथ लिखे गए एप्लिकेशन का परीक्षण करना सरल है क्योंकि पर्यावरण-निर्भर कोड को इस ढांचे में स्थानांतरित कर दिया गया है। इसके अलावा, जावाबिनस्टाइल पीओजेओ का उपयोग करके, परीक्षण डेटा को इंजेक्ट करने के लिए निर्भरता इंजेक्शन का उपयोग करना आसान हो जाता है।

  • स्प्रिंग का वेब ढांचा एक अच्छी तरह से डिज़ाइन किया गया वेब MVC फ्रेमवर्क है, जो वेब फ्रेमवर्क जैसे स्ट्रट्स या अन्य अति-इंजीनियर या कम लोकप्रिय वेब फ्रेमवर्क का एक बढ़िया विकल्प प्रदान करता है।

  • स्प्रिंग प्रौद्योगिकी-विशिष्ट अपवादों का अनुवाद करने के लिए एक सुविधाजनक एपीआई प्रदान करता है (उदाहरण के लिए, जेडीबीसी, हाइबरनेट या जेडीओ द्वारा फेंका गया), अनियंत्रित अपवादों में।

  • लाइटवेट IoC कंटेनर हल्के होते हैं, खासकर जब EJB कंटेनरों की तुलना में, उदाहरण के लिए। यह सीमित मेमोरी और सीपीयू संसाधनों के साथ कंप्यूटर पर अनुप्रयोगों को विकसित और तैनात करने के लिए फायदेमंद है।

  • स्प्रिंग एक सुसंगत लेन-देन प्रबंधन इंटरफ़ेस प्रदान करता है जो स्थानीय लेनदेन (उदाहरण के लिए एकल डेटाबेस का उपयोग करके) और वैश्विक लेनदेन (उदाहरण के लिए, जेटा का उपयोग करके) तक स्केल कर सकता है।

निर्भरता इंजेक्शन (DI)

जिस तकनीक से स्प्रिंग की पहचान की जाती है वह है Dependency Injection (DI)नियंत्रण के उलटा का स्वाद। Inversion of Control (IoC)एक सामान्य अवधारणा है, और इसे कई अलग-अलग तरीकों से व्यक्त किया जा सकता है। डिपेंडेंसी इंजेक्शन, व्युत्क्रम नियंत्रण का केवल एक ठोस उदाहरण है।

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

निर्भरता इंजेक्शन वास्तव में क्या है? आइए इन दोनों शब्दों को अलग-अलग देखें। यहाँ पर निर्भरता भाग दो वर्गों के बीच संबंध में परिवर्तित होता है। उदाहरण के लिए, क्लास ए कक्षा बी के निर्भर है। अब, दूसरे भाग को देखें, इंजेक्शन। इसका मतलब यह है कि, वर्ग बी को आईओसी द्वारा कक्षा ए में इंजेक्ट किया जाएगा।

डिपेंडेंसी इंजेक्शन कंस्ट्रक्टर को पैरामीटर पास करने या सेटर निर्माण विधियों का उपयोग करके पोस्ट-कंस्ट्रक्शन के तरीके से हो सकता है। जैसा कि निर्भरता इंजेक्शन वसंत फ्रेमवर्क का दिल है, हम इस अवधारणा को प्रासंगिक उदाहरण के साथ एक अलग अध्याय में समझाएंगे।

पहलू उन्मुख प्रोग्रामिंग (एओपी)

वसंत के प्रमुख घटकों में से एक है Aspect Oriented Programming (AOP)ढांचा। किसी अनुप्रयोग के कई बिंदुओं को जोड़ने वाले कार्य कहलाते हैंcross-cutting concernsऔर इन क्रॉस-कटिंग चिंताओं को वैचारिक रूप से एप्लिकेशन के व्यावसायिक तर्क से अलग किया जाता है। लॉगिंग, घोषणात्मक लेनदेन, सुरक्षा, कैशिंग, आदि पहलुओं के विभिन्न सामान्य अच्छे उदाहरण हैं।

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

स्प्रिंग फ्रेमवर्क का एओपी मॉड्यूल एक पहलू-उन्मुख प्रोग्रामिंग कार्यान्वयन प्रदान करता है, जो आपको विधि-अवरोधक और बिंदुओं को साफ-साफ कोड को परिभाषित करने की अनुमति देता है जो कार्यक्षमता को अलग करता है जिसे अलग किया जाना चाहिए। हम एक अलग अध्याय में स्प्रिंग एओपी अवधारणाओं के बारे में अधिक चर्चा करेंगे।