Spring Boot కేవలం ఒక REST API సర్వర్ మాత్రమే కాదు
చాలా మంది డెవలపర్లు Spring Boot కేవలం JSON డేటాను మాత్రమే అందిస్తుందని అనుకుంటారు. React లేదా Vue యాప్ను Vercel లేదా AWS వంటి వేరే సర్వర్లో హోస్ట్ చేయాలని వారు నమ్ముతారు.
ఇది ఒక పొరపాటు.
Spring Boot లో ఒక embedded Apache Tomcat సర్వర్ ఉంటుంది. అంటే మీరు ఒకే ఒక JAR ఫైల్లో ఫుల్-స్టాక్ అప్లికేషన్లను నిర్మించవచ్చు.
ఒకే JAR ఫైల్ను ఉపయోగించడం వల్ల మీకు మూడు ప్రధాన ప్రయోజనాలు ఉన్నాయి:
- Zero CORS సమస్యలు: మీ frontend మరియు backend ఒకే పోర్ట్ మరియు డొమైన్ను ఉపయోగిస్తాయి.
- తక్కువ ఖర్చు: మీకు విడిగా 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 కాంపోనెంట్లను హ్యాండిల్ చేసి, వాటిని Tomcat ద్వారా అందిస్తుంది. ఫ్రంటెండ్ సంక్లిష్టతను నివారించాలనుకునే Java డెవలపర్లకు ఇది చాలా ఉత్తమం.
JSF (JavaServer Faces) ఎంటర్ప్రైజ్ సిస్టమ్స్ కోసం JSF ఒక బలమైన ఎంపిక. అధిక నాణ్యత కలిగిన కాంపోనెంట్స్ కోసం మీరు దీనిని PrimeFaces లేదా BootsFacesతో కలిపి ఉపయోగించవచ్చు. మీ Spring configurationలో FacesServletని రిజిస్టర్ చేస్తే సరిపోతుంది.
The Indie Hacker Way (SPA Integration) మీరు ఒక React లేదా Vite యాప్ను నిర్మించి, దాని build ఫైల్లను
src/main/resources/staticఫోల్డర్లోకి మార్చవచ్చు.
దీనిని ఆటోమేట్ చేయడానికి, frontend-maven-pluginని ఉపయోగించండి. ఇది మీ Maven build సమయంలో npm install మరియు npm buildలను రన్ చేస్తుంది.
React వినియోగదారుల కోసం ఒక చిట్కా: మీరు React Router ఉపయోగిస్తుంటే, తెలియని పాత్లను index.htmlకి రీడైరెక్ట్ చేయడానికి ఒక Controllerని సృష్టించండి. దీనివల్ల యూజర్లు పేజీని రిఫ్రెష్ చేసినప్పుడు 404 ఎర్రర్స్ రావు.
అదనపు సర్వర్ల కోసం వెతకడం ఆపండి. మీ embedded Tomcat యొక్క శక్తిని ఉపయోగించుకోండి.
Source: https://dev.to/ganigurgah/spring-boot-is-not-just-a-rest-api-server-50hh