Spring Boot हिंदी ट्यूटोरियल: Spring Boot क्या है और इसके फायदे


आज से हम हिंदी में Spring Boot Tutorials शुरू करने जा रहे है, यहाँ पर हम आपको अपनी हिंदी भाषा में Spring Boot अच्छे तरीके से समझायेंगे ताकि आप आसानी से इसे सिख पाओ।

इस आर्टिकल में हम Spring Boot क्या है? और उसके History के बारे में जानेंगे। History समझना इतना जरूरी नहीं है , लेकिन कई बार Interview में कुछ ऐसे सवाल पूछे जा सकते है, जो Spring Boot History के बारें में हो। ऐसे में Spring Boot के History के बारे में जानना और समझना एक अच्छी प्रैक्टिस माना जाता है।

Spring Boot क्या है हिंदी ट्यूटोरियल



Spring Framework क्या है ?

हम Spring Boot को Spring Framework का एक हिस्सा कह सकते है, इसलिए पहले Spring Framework क्या है? ये जानना आवश्यक हो जाता है। Spring Framework ये Java Programming के नजरियें से Web Application को बनाने का बेहतरीन टूल माना जाता है। ये जावा बेस Open Source Framework है, जो Java में एंटरप्राइज लेवल Application बनाना काफी आसान कर देता है।

शायद इसका महत्व वे Developers ज्यादा समझते है जो Spring Framework आने से पहले JE (Java Enterprise) या  JEB (Java Enterprise Beans) में Java Application बनाते थे। क्यों की ये इतना Complicated और लोडिंग मे भारी था की Web Application बनाते समय Developers काफी परेशान हो जाते थे।

इस बात को ध्यान में रखते हुयें रॉड जॉनसन ने 2002 में एक हल्का और आसान Spring Framework बनाया जो Java Application बनाने के लिए एक बेहतरीन टूल साबित हुआ।

(रॉड जॉनसन के जीवनी को आप विकिपीडिया पर पढ़ सकते है - इस लिंक से जाए - रॉड जॉनसन)


लेकिन इसमें भी शुरवाती दौर में कई दिक्कते थी। जैसे 2002 में जो पहला वर्शन आया था इसमें कई चीजें शामिल नहीं थी और Spring Framework को यूज़ करनेवाले Developers को कई बातों के लिए Manually Coding करनी पड़ती थी।

इस बात को ध्यान में रखते हुए 2004 में Spring Framework का अगला वर्शन रिलीज़ किया गया जो Spring 1.0 कहलाया। इसमें Dependency Injection और AOP(Aspect-Oriented Programming) जैसे महत्वपूर्ण फीचर्स शामिल किये गये थे।

कई Complicated चीजे हटाने के बाद और Dependencies और AOP शामिल होने के बाद Spring Framework तेजी से फेमस हुआ। क्यों की अब ये Developers के कई थकाऊ Coding को कम करता था और ये हल्का और तेज भी था। इस से Developers कम गलतियों के साथ Web एप्लीकेशन को आसानी से बना सकते थे। 

सब से पहले तो हमें Spring Framework के महत्व को समझना चाहिए। जब हम एप्लीकेशन बेस प्रोजेक्ट पर काम करते है तो कई बार हमें एक ही कोड कई बार लिखना पड सकता है,  ऐसे में Spring Framework इस तरह के बॉयलरप्लेट कोड को कम करता है और कोड को Loosely-Coupled और टेस्टिंग के लिए इजी बनता है

Spring Framework में कई सारे पावरफुल Modules होते है, याने हम इन्हें अलग अलग हिस्से कहे सकते है जिसमे से एक Spring Boot भी है

Spring Framework के मुख्य मोड्यूल्स :

  • Spring Core
  • Spring MVC
  • Spring Security
  • Spring AOP
  • Spring Boot
  • Spring Data
अब हम Spring Boot क्या है? ये जान लेते है और साथ ही Spring Framework के इन सभी मोडयुल्स को वक्त-वक्त पर जानेंगे और समझेंगे

Spring Boot क्या है?

ये Spring Framework का ऐसा हिस्सा है जो Spring Framework से ज्यादा पॉपुलर होते हुए हम देख रहे है, इसकी वजह है इसके फीचर्स।

Spring Framework के लगभग 10 साल बाद Spring Boot को बनाया गया 2014 में Spring Boot का पहला वर्शन रिलीज़ किया गया जिसने Spring Framework को काफी आसान बना दिया। क्यों की जो काम Developers Spring Framework में Manually करते थे वही काम Spring Boot अब Automatically करने लगा और Developers को Spring फ्रेमवर्क के सेटिंग्स पर ध्यान देने की जरूरत ही नहीं रही, अब बस Developers अपना पूरा फोकस प्रोजेक्ट लॉजिक पर लगा सकते है। और यही बात Spring Boot को टॉप पर लेकर गयी।

हमें Spring Framework और Spring Boot के अंतर को समझना होगा। तभी हम इसके के महत्व को समझ सकते है।

Spring Framework और Spring Boot में क्या है अंतर?

ये काफी लचीला Framework है, लेकिन अगर आप नये है तो आपको Spring Framework काफी ज्यादा Complicated लग सकता है, इसका कारण है की यहाँ पर कई modules होते है जिसे Configure करने के लिए आपको XML फाइल्स में कई तरह की सेटिंग्स Manually करनी होती है।

जैसे Spring MVC, Spring Security, Spring Data, इस तरह के कई modules हमें खुद से सेट करने होते है। जिसके लिए आपको कोड लिखना पड़ता है। याने जो भी Configure सेटिंग्स करनी होती है हमें खुद करनी होती है। और नये Developers के लिए दिक्कत ये आती है की इस सेटिंग्स को समझना मुश्किल लग सकता है, और इसमें काफी समय भी बर्बाद होता है।

शायद इसी दिक्कत को समझते हुए Spring Boot को Spring framework के अलग हिस्से के रूप में विकसित किया गया। और Spring framework के मुकाबले स्प्रिंग बूट को काफी आसान और Automoded मोड़ के साथ बनाया गया।

ये Auto-Configuration के साथ आता है, याने फ्रेमवर्क में जो modules की जो सेटिंग करनी होती थी वो स्प्रिंग बूट में ऑटोमेटिकली हो जाती है। इसकी वजह से एक Developer को काफी कम कोड लिखना पड़ता है, और समय की काफी बचत हो जाती है। इसे आगे आनेवाले आर्टिकल में हम विस्तार से जानेंगे ही।

साथ ही हमें सेटिंग्स या किसी भी तरह के कॉन्फ़िगरेशन पर ध्यान देने की जरूरत नहीं होती, याने हम अपना पूरा फोकस प्रोजेक्ट के लॉजिक पर बनाये रखते है। साथ ही ये स्प्रिंग फ्रेमवर्क से ज्यादा तेज है क्यों की इसमें embedded server होते है (जैसे Tomcat) जो प्रोजेक्ट के सर्वर इंस्टालेशन के मांग को कम कर देता है याने आपको इसके लिए अलग से सर्वर इनस्टॉल करने की जरूरत नहीं होती।

इसे हम टेबल के माध्यम से समझते है,
# Spring Framework Spring Boot
1 Configuration में काफी heavy  Configuration शुन्य (Auto-configured)
2 XML या Java Config की जरूरत Minimum Configuration
3 Web server अलग से सेटअप करना होता है Embedded server (Tomcat,  UnderTow आदि पहले से होता है)
4 Application setup में समय लगता है जल्दी स्टार्ट होता है
5 Modules को अलग से जोड़ना पड़ता है Dependencies auto-load होती हैं


चलों हम Spring Boot के फायदे कुछ पॉइंट्स के साथ नोट करते है।

Spring Boot के फायदे

कॉन्फ़िगरेशन को कम करता है - ये कई तरह के मॉड्युल्स के सेटिंग को ऑटोमेटिकली कर देता है जो Developers को कम कोड लिखने की सुविधा प्रदान करता है।

Embedded server के साथ आता है - इसके लिए अलग सर्वर को इस्तेमाल करने की जरूरत नहीं पडती, क्यों की इसमें Tomcat, Jetty, UnderTow जैसे सर्वर्स पहले से ही ऐड होते है।

Production-Ready Features - इसकी और एक खास बात ये भी है की इसमें Monitoring, Health-Check, Metrics जैसे Production-Ready Features आसानी से मिल जाते है।

Microservices के लिए लाभदायी - Spring Boot ने छोटे छोटे एप्लीकेशन को बनाना काफी आसन कर दिया है जो Microservices के लिए काफी उपयोगी साबित होता है।

Spring Boot कैसे काम करता है?, ये समझने के लिए हमे उसके Architecture को समझना जरूरी है। ये चार हिस्सों में काम करता है जिसे हम Components कहते है। चलो जान लेते है।

Spring Boot Components

इसके मुख्य चार Components है जो Spring Boot की आधारशिला है।

  1. Starter Dependencies
  2. Auto-configuration
  3. Actuator
  4. Spring Boot CLI
Starter Dependencies - ये एक प्री-डिफाइंड डिपेंडेंसीज का काफी यूज़फुल सेट है, जो आपके प्रोजेक्ट के हिसाब से आवश्यक सभी लाइब्रेरीज को जोड़ने में सक्षम है। जैसे हम देखते है spring-boot-starter-web ये एक डिपेंडेंसी है जिसमे TomCat, Spring MVC जैसी जरुरी लाइब्रेरीज होती है। जो आपके वेब प्रोजेक्ट के लिए आवश्यक होती है।

Auto-configuration - ये इसकी सबसे ख़ास बात है, जैसे मुझे अपने प्रोजेक्ट के लिए डेटाबेस में डेटाबेस और टेबल्स बनाने है, अगर कई ज्यादा टेबल्स है तो काम काफी थकाऊ हो सकता है, लेकिन स्प्रिंग बूट के साथ आपको सिर्फ डिपेंडेंसीज जोड़ने की आवश्यकता है। ये Auto-configuration के साथ आपके डेटाबेस में सभी टेबल्स क्रिएट कर देगा। याने यूँ कहे की प्रोजेक्ट की जरूरत के हिसाब से अपने आप में सेटिंग्स करना इसकी खासियत है।

Actuator - एप्लीकेशन के निगरानी का काम करता है Actuator । जैसे Health-Check, Metrics, logs। ( इसे हम आनेवाले आर्टिकल में काफी डिटेल से समझेंगे)

Spring Boot CLI - अगर आप Command Line के जरिये प्रोजेक्ट बनाना या चलाना चाहते है तो ये आपको इस तरह की सुविधा प्रदान करता है। लेकिन ये वैकल्पिक है। याने ये आवश्यक नहीं है जैसे उपरोक्त 3 कंपोनेंट्स आवश्यक है।

स्प्रिंग बूट कई तरह की डिफ़ॉल्ट सेटिंग्स प्रदान करता है, और ज्यादातर एप्लीकेशन में स्प्रिंग बूट की डिफ़ॉल्ट सेटिंग ही काम कर जाती है इतना ये एक्यूरेट सेटिंग्स प्रदान करता है, जब आपको आवश्यक लगता है तभी आप सेटिंग्स बदलते है नहीं तो आवश्यक नही है, जैसे मेरा एप्लीकेशन मुझे port 9090 पर रन करना है तभी मैं application.properties में जाकर पोर्ट चेंज करूंगा, अगर ये आवश्यक नहीं है तो स्प्रिंग बूट डिफ़ॉल्ट port 8080 का इस्तेमाल कर ही रहा है। याने Developers का काफी काम आसान करता है स्प्रिंग बूट।

Next आर्टिकल में 

आगे आनेवाले आर्टिकल्स में हम Spring Boot Development Environment Setup करना सीखेंगे। इस के लिए आवश्यक सभी टूल्स की सेटिंग कैसे करनी है? ये भी हम जानेंगे।

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

Spring Initializr हिंदी ट्यूटोरियल: Maven vs Gradle और प्रोजेक्ट सेटअप गाइड

Spring Boot Development Environment Setup हिंदी में: JDK, Maven, Gradle सेटअप गाइड