𝗦𝗽𝗿𝗶𝗻𝗴 𝗕𝗼𝗼𝘁 𝗜𝘀 𝗡𝗼𝘁 𝗝𝘂𝘀𝘁 𝗮 𝗥𝗘𝗦𝗧 𝗔𝗣𝗜 𝗦𝗲𝗿𝘃𝗲𝗿

ઘણા ડેવલપર્સ એવું વિચારે છે કે Spring Boot માત્ર JSON ડેટા જ સર્વ કરે છે. તેઓ માને છે કે તમારે React અથવા Vue એપને Vercel અથવા AWS જેવા અલગ સર્વર પર હોસ્ટ કરવી જોઈએ.

આ એક ભૂલ છે.

Spring Boot માં એક એમ્બેડેડ Apache Tomcat સર્વર સામેલ હોય છે. આનો અર્થ એ છે કે તમે એક જ JAR ફાઇલની અંદર ફૂલ-સ્ટેક એપ્લિકેશન્સ બનાવી શકો છો.

એક જ JAR ફાઇલનો ઉપયોગ કરવાથી તમને ત્રણ મુખ્ય ફાયદા થાય છે:

  • શૂન્ય CORS સમસ્યાઓ: તમારું frontend અને backend એક જ પોર્ટ અને ડોમેનનો ઉપયોગ કરે છે.
  • ઓછો ખર્ચ: તમારે અલગ Node.js સર્વરની જરૂર નથી. એક Linux સર્વર અથવા Docker કન્ટેનર બધું જ ચલાવી શકે છે.
  • સરળ ડિપ્લોયમેન્ટ: એક જ બિલ્ડ પ્રોસેસ તમારા UI અને સર્વર બંનેને સંભાળે છે.

Spring Boot માં તમારા UI ને સામેલ કરવાની ચાર રીતો અહીં છે:

  1. Server-Side Templating (SSR) સર્વર પર HTML રેન્ડર કરવા માટે Thymeleaf નો ઉપયોગ કરો. તમે તમારી Maven ફાઇલમાં starter dependency ઉમેરો છો અને HTML ટેમ્પલેટ્સ રિટર્ન કરવા માટે Controller નો ઉપયોગ કરો છો. તે સરળ અને ઝડપી છે.

  2. Vaadin Vaadin તમને ફક્ત Java નો ઉપયોગ કરીને આધુનિક વેબ એપ્સ બનાવવાની મંજૂરી આપે છે. તમારે JavaScript અથવા CSS લખવાની જરૂર નથી. Vaadin બેકગ્રાઉન્ડમાં React components ને હેન્ડલ કરે છે અને તેમને Tomcat દ્વારા સર્વ કરે છે. આ Java ડેવલપર્સ માટે ઉત્તમ છે જેઓ frontend ની જટિલતા ટાળવા માંગે છે.

  3. JSF (JavaServer Faces) JSF એ એન્ટરપ્રાઇઝ સિસ્ટમ્સ માટે એક મજબૂત પસંદગી છે. ઉચ્ચ ગુણવત્તાવાળા components મેળવવા માટે તમે તેને PrimeFaces અથવા BootsFaces સાથે જોડી શકો છો. તમારે ફક્ત તમારી Spring configuration માં FacesServlet ને રજિસ્ટર કરવાની જરૂર છે.

  4. The Indie Hacker Way (SPA Integration) તમે React અથવા Vite એપ બનાવી શકો છો અને બિલ્ડ ફાઇલોને src/main/resources/static ફોલ્ડરમાં ખસેડી શકો છો.

આને ઓટોમેટ કરવા માટે, frontend-maven-plugin નો ઉપયોગ કરો. આ તમારા Maven build દરમિયાન npm install અને npm build ચલાવે છે.

React વપરાશકર્તાઓ માટે એક ટીપ: જો તમે React Router નો ઉપયોગ કરો છો, તો અજાણ્યા પાથને index.html પર રીડાયરેક્ટ કરવા માટે એક Controller બનાવો. આ વપરાશકર્તાઓ જ્યારે પેજ રિફ્રેશ કરે ત્યારે 404 એરરને અટકાવે છે.

વધારાના સર્વર શોધવાનું બંધ કરો. તમારા એમ્બેડેડ Tomcat ની શક્તિનો ઉપયોગ કરો.

Source: https://dev.to/ganigurgah/spring-boot-is-not-just-a-rest-api-server-50hh