Spring Boot ਸਿਰਫ਼ ਇੱਕ REST API ਸਰਵਰ ਨਹੀਂ ਹੈ
ਬਹੁਤ ਸਾਰੇ ਡਿਵੈਲਪਰ ਸੋਚਦੇ ਹਨ ਕਿ Spring Boot ਸਿਰਫ਼ JSON ਡੇਟਾ ਹੀ ਸਰਵ ਕਰਦਾ ਹੈ। ਉਹ ਮੰਨਦੇ ਹਨ ਕਿ ਤੁਹਾਨੂੰ React ਜਾਂ Vue ਐਪ ਨੂੰ Vercel ਜਾਂ AWS ਵਰਗੇ ਵੱਖਰੇ ਸਰਵਰ 'ਤੇ ਹੋਸਟ ਕਰਨਾ ਪਵੇਗਾ।
ਇਹ ਇੱਕ ਗਲਤੀ ਹੈ।
Spring Boot ਵਿੱਚ ਇੱਕ embedded Apache Tomcat ਸਰਵਰ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਸੀਂ ਇੱਕ ਸਿੰਗਲ JAR ਫਾਈਲ ਦੇ ਅੰਦਰ full-stack ਐਪਲੀਕੇਸ਼ਨਾਂ ਬਣਾ ਸਕਦੇ ਹੋ।
ਇੱਕ ਸਿੰਗਲ JAR ਫਾਈਲ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਤਿੰਨ ਮੁੱਖ ਫਾਇਦੇ ਹਨ:
- ਜ਼ੀਰੋ CORS ਸਮੱਸਿਆਵਾਂ: ਤੁਹਾਡਾ frontend ਅਤੇ backend ਇੱਕੋ port ਅਤੇ domain ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।
- ਘੱਟ ਲਾਗਤ: ਤੁਹਾਨੂੰ ਇੱਕ ਵੱਖਰੇ Node.js ਸਰਵਰ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਇੱਕ Linux ਸਰਵਰ ਜਾਂ Docker container ਸਭ ਕੁਝ ਚਲਾਉਂਦਾ ਹੈ।
- ਸਰਲ ਡਿਪਲਾਈਮੈਂਟ: ਇੱਕ ਹੀ build process ਤੁਹਾਡੇ UI ਅਤੇ ਸਰਵਰ ਦੋਵਾਂ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ।
Spring Boot ਵਿੱਚ ਆਪਣੇ UI ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਦੇ ਚਾਰ ਤਰੀਕੇ ਇੱਥੇ ਹਨ:
Server-Side Templating (SSR) ਸਰਵਰ 'ਤੇ HTML ਰੈਂਡਰ ਕਰਨ ਲਈ Thymeleaf ਦੀ ਵਰਤੋਂ ਕਰੋ। ਤੁਸੀਂ ਆਪਣੀ Maven ਫਾਈਲ ਵਿੱਚ starter dependency ਜੋੜਦੇ ਹੋ ਅਤੇ HTML templates ਵਾਪਸ ਕਰਨ ਲਈ ਇੱਕ Controller ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ। ਇਹ ਸਰਲ ਅਤੇ ਤੇਜ਼ ਹੈ।
Vaadin Vaadin ਤੁਹਾਨੂੰ ਸਿਰਫ਼ Java ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਧੁਨਿਕ web apps ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਤੁਹਾਨੂੰ JavaScript ਜਾਂ CSS ਲਿਖਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। Vaadin ਪਿਛੋਕੜ (background) ਵਿੱਚ React components ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ ਅਤੇ Tomcat ਰਾਹੀਂ ਉਹਨਾਂ ਨੂੰ ਸਰਵ ਕਰਦਾ ਹੈ। ਇਹ ਉਹਨਾਂ Java ਡਿਵੈਲਪਰਾਂ ਲਈ ਬਹੁਤ ਵਧੀਆ ਹੈ ਜੋ frontend ਦੀ ਗੁੰਝਲਤਾ ਤੋਂ ਬਚਣਾ ਚਾਹੁੰਦੇ ਹਨ।
JSF (JavaServer Faces) JSF ਐਂਟਰਪ੍ਰਾਈਜ਼ ਸਿਸਟਮਾਂ ਲਈ ਇੱਕ ਮਜ਼ਬੂਤ ਵਿਕਲਪ ਹੈ। ਤੁਸੀਂ ਉੱਚ-ਗੁਣਵੱਤਾ ਵਾਲੇ components ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇਸਨੂੰ 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 ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਅਣਜਾਣ paths ਨੂੰ index.html 'ਤੇ ਰੀਡਾਇਰੈਕਟ ਕਰਨ ਲਈ ਇੱਕ Controller ਬਣਾਓ। ਇਹ ਉਪਭੋਗਤਾਵਾਂ ਦੁਆਰਾ ਪੇਜ ਨੂੰ ਰਿਫ੍ਰੈਸ਼ ਕਰਨ ਵੇਲੇ 404 errors ਨੂੰ ਰੋਕਦਾ ਹੈ।
ਵਾਧੂ ਸਰਵਰਾਂ ਦੀ ਭਾਲ ਕਰਨਾ ਬੰਦ ਕਰੋ। ਆਪਣੇ embedded Tomcat ਦੀ ਸ਼ਕਤੀ ਦੀ ਵਰਤੋਂ ਕਰੋ।
ਸਰੋਤ: https://dev.to/ganigurgah/spring-boot-is-not-just-a-rest-api-server-50hh