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

ಅನೇಕ ಡೆವಲಪರ್‌ಗಳು Spring Boot ಕೇವಲ JSON ಡೇಟಾವನ್ನು ಮಾತ್ರ ನೀಡುತ್ತದೆ ಎಂದು ಭಾವಿಸುತ್ತಾರೆ. React ಅಥವಾ Vue ಆಪ್ ಅನ್ನು Vercel ಅಥವಾ AWS ನಂತಹ ಪ್ರತ್ಯೇಕ ಸರ್ವರ್‌ನಲ್ಲಿ ಹೋಸ್ಟ್ ಮಾಡಲೇಬೇಕು ಎಂದು ಅವರು ನಂಬುತ್ತಾರೆ.

ಇದು ಒಂದು ತಪ್ಪು.

Spring Boot ನಲ್ಲಿ ಎಂಬೆಡೆಡ್ (embedded) Apache Tomcat ಸರ್ವರ್ ಅಡಕವಾಗಿದೆ. ಇದರರ್ಥ ನೀವು ಒಂದೇ JAR ಫೈಲ್‌ನೊಳಗೆ ಫುಲ್-ಸ್ಟಾಕ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು.

ಒಂದೇ JAR ಫೈಲ್ ಬಳಸುವುದು ನಿಮಗೆ ಮೂರು ಮುಖ್ಯ ಪ್ರಯೋಜನಗಳನ್ನು ನೀಡುತ್ತದೆ:

  • ಶೂನ್ಯ CORS ಸಮಸ್ಯೆಗಳು: ನಿಮ್ಮ ಫ್ರಂಟ್-ಎಂಡ್ ಮತ್ತು ಬ್ಯಾಕ್-ಎಂಡ್ ಒಂದೇ ಪೋರ್ಟ್ ಮತ್ತು ಡೊಮೇನ್ ಅನ್ನು ಬಳಸುತ್ತವೆ.
  • ಕಡಿಮೆ ವೆಚ್ಚ: ನಿಮಗೆ ಪ್ರತ್ಯೇಕ Node.js ಸರ್ವರ್ ಅಗತ್ಯವಿಲ್ಲ. ಒಂದು Linux ಸರ್ವರ್ ಅಥವಾ Docker ಕಂಟೇನರ್ ಎಲ್ಲವನ್ನೂ ನಿರ್ವಹಿಸುತ್ತದೆ.
  • ಸರಳ ನಿಯೋಜನೆ (Simple deployment): ಒಂದೇ ಬಿಲ್ಡ್ ಪ್ರಕ್ರಿಯೆಯು ನಿಮ್ಮ UI ಮತ್ತು ಸರ್ವರ್ ಎರಡನ್ನೂ ನಿರ್ವಹಿಸುತ್ತದೆ.

Spring Boot ನಲ್ಲಿ ನಿಮ್ಮ UI ಅನ್ನು ಸೇರಿಸಲು ಇಲ್ಲಿ ನಾಲ್ಕು ಮಾರ್ಗಗಳಿವೆ:

  1. ಸರ್ವರ್-ಸೈಡ್ ಟೆಂಪ್ಲೇಟಿಂಗ್ (SSR) ಸರ್ವರ್‌ನಲ್ಲಿ HTML ಅನ್ನು ರেন্ডರ್ ಮಾಡಲು Thymeleaf ಬಳಸಿ. ನಿಮ್ಮ Maven ಫೈಲ್‌ಗೆ starter dependency ಅನ್ನು ಸೇರಿಸಿ ಮತ್ತು HTML ಟೆಂಪ್ಲೇಟ್‌ಗಳನ್ನು ಹಿಂತಿರುಗಿಸಲು Controller ಅನ್ನು ಬಳಸಿ. ಇದು ಸರಳ ಮತ್ತು ವೇಗವಾಗಿದೆ.

  2. Vaadin Vaadin ಬಳಸಿ ನೀವು ಕೇವಲ Java ಮೂಲಕ ಆಧುನಿಕ ವೆಬ್ ಆಪ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು. ನೀವು JavaScript ಅಥವಾ CSS ಬರೆಯುವ ಅಗತ್ಯವಿಲ್ಲ. Vaadin ಹಿನ್ನೆಲೆಯಲ್ಲಿ React components ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು Tomcat ಮೂಲಕ ಅವುಗಳನ್ನು ನೀಡುತ್ತದೆ. ಫ್ರಂಟ್-ಎಂಡ್ ಸಂಕೀರ್ಣತೆಯನ್ನು ತಪ್ಪಿಸಲು ಬಯಸುವ Java ಡೆವಲಪರ್‌ಗಳಿಗೆ ಇದು ಅತ್ಯುತ್ತಮವಾಗಿದೆ.

  3. JSF (JavaServer Faces) ಎಂಟರ್‌ಪ್ರೈಸ್ ಸಿಸ್ಟಮ್‌ಗಳಿಗೆ JSF ಒಂದು ಬಲವಾದ ಆಯ್ಕೆಯಾಗಿದೆ. ಉತ್ತಮ ಗುಣಮಟ್ಟದ components ಪಡೆಯಲು ನೀವು ಇದನ್ನು PrimeFaces ಅಥವಾ BootsFaces ನೊಂದಿಗೆ ಸಂಯೋಜಿಸಬಹುದು. ನಿಮ್ಮ Spring ಕಾನ್ಫಿಗರೇಶನ್‌ನಲ್ಲಿ FacesServlet ಅನ್ನು ನೋಂದಾಯಿಸಿದರೆ ಸಾಕು.

  4. ಇಂಡಿ ಹ್ಯಾಕರ್ ವಿಧಾನ (SPA Integration) ನೀವು React ಅಥವಾ Vite ಆಪ್ ಅನ್ನು ನಿರ್ಮಿಸಿ, ಅದರ build ಫೈಲ್‌ಗಳನ್ನು src/main/resources/static ಫೋಲ್ಡರ್‌ಗೆ ವರ್ಗಾಯಿಸಬಹುದು.

ಇದನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಲು, frontend-maven-plugin ಬಳಸಿ. ಇದು ನಿಮ್ಮ Maven ಬಿಲ್ಡ್ ಸಮಯದಲ್ಲಿ npm install ಮತ್ತು npm build ಅನ್ನು ರನ್ ಮಾಡುತ್ತದೆ.

React ಬಳಕೆದಾರರಿಗೆ ಒಂದು ಸಲಹೆ: ನೀವು React Router ಬಳಸುತ್ತಿದ್ದರೆ, ಅನ್-ನೋನ್ (unknown) ಪಾತ್‌ಗಳನ್ನು index.html ಗೆ ರಿಡೈರೆಕ್ಟ್ ಮಾಡಲು ಒಂದು Controller ಅನ್ನು ರಚಿಸಿ. ಇದು ಬಳಕೆದಾರರು ಪೇಜ್ ಅನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿದಾಗ 404 ಎರ್ರರ್‌ಗಳು ಬರದಂತೆ ತಡೆಯುತ್ತದೆ.

ಹೆಚ್ಚುವರಿ ಸರ್ವರ್‌ಗಳಿಗಾಗಿ ಹುಡುಕುವುದು ನಿಲ್ಲಿಸಿ. ನಿಮ್ಮ ಎಂಬೆಡೆಡ್ Tomcat ಶಕ್ತಿಯನ್ನು ಬಳಸಿ.

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