Spring Boot सिर्फ एक REST API सर्वर नहीं है
कई डेवलपर्स सोचते हैं कि Spring Boot केवल JSON डेटा ही सर्व करता है। उनका मानना है कि आपको React या Vue ऐप को Vercel या AWS जैसे किसी अलग सर्वर पर होस्ट करना होगा।
यह एक गलती है।
Spring Boot में एक एम्बेडेड Apache Tomcat सर्वर शामिल होता है। इसका मतलब है कि आप एक ही JAR फ़ाइल के अंदर फुल-स्टैक एप्लिकेशन बना सकते हैं।
एक ही JAR फ़ाइल का उपयोग करने से आपको तीन मुख्य लाभ मिलते हैं:
- शून्य CORS समस्याएँ: आपका फ्रंटएंड और बैकएंड एक ही पोर्ट और डोमेन का उपयोग करते हैं।
- कम लागत: आपको एक अलग Node.js सर्वर की आवश्यकता नहीं है। एक Linux सर्वर या Docker कंटेनर सब कुछ चला सकता है।
- सरल डिप्लॉयमेंट: एक ही बिल्ड प्रक्रिया आपके UI और सर्वर दोनों को संभालती है।
Spring Boot में अपने UI को शामिल करने के चार तरीके यहाँ दिए गए हैं:
Server-Side Templating (SSR) सर्वर पर HTML रेंडर करने के लिए Thymeleaf का उपयोग करें। आप अपनी Maven फ़ाइल में starter dependency जोड़ते हैं और HTML टेम्पलेट वापस करने के लिए एक Controller का उपयोग करते हैं। यह सरल और तेज़ है।
Vaadin Vaadin आपको केवल Java का उपयोग करके आधुनिक वेब ऐप बनाने की अनुमति देता है। आपको JavaScript या CSS लिखने की आवश्यकता नहीं है। Vaadin बैकग्राउंड में React components को संभालता है और उन्हें Tomcat के माध्यम से सर्व करता है। यह उन Java डेवलपर्स के लिए बेहतरीन है जो फ्रंटएंड की जटिलता से बचना चाहते हैं।
JSF (JavaServer Faces) एंटरप्राइज सिस्टम के लिए JSF एक मजबूत विकल्प है। उच्च गुणवत्ता वाले कंपोनेंट्स प्राप्त करने के लिए आप इसे PrimeFaces या BootsFaces के साथ जोड़ सकते हैं। आपको बस अपने Spring कॉन्फ़िगरेशन में FacesServlet को रजिस्टर करने की आवश्यकता है।
Indie Hacker तरीका (SPA Integration) आप एक React या Vite ऐप बना सकते हैं और बिल्ड फ़ाइलों को
src/main/resources/staticफ़ोल्डर में ले जा सकते हैं।
इसे ऑटोमेट करने के लिए, frontend-maven-plugin का उपयोग करें। यह आपके Maven बिल्ड के दौरान npm install और npm build चलाता है।
React उपयोगकर्ताओं के लिए एक टिप: यदि आप React Router का उपयोग करते हैं, तो अज्ञात पाथ को index.html पर रीडायरेक्ट करने के लिए एक Controller बनाएँ। यह उपयोगकर्ताओं द्वारा पेज रिफ्रेश करने पर 404 एरर को रोकता है।
अतिरिक्त सर्वर ढूँढना बंद करें। अपने एम्बेडेड Tomcat की शक्ति का उपयोग करें।
स्रोत: https://dev.to/ganigurgah/spring-boot-is-not-just-a-rest-api-server-50hh