𝗦𝗽𝗿𝗶𝗻𝗴 𝗕𝗼𝗼𝘁 𝗜𝘀 𝗡𝗼𝘁 𝗝𝘂𝘀𝘁 𝗮 𝗥𝗘𝗦𝗧 𝗔𝗣𝗜 𝗦𝗲𝗿𝘃𝗲𝗿
Waendelezaji wengi wanafikiri kuwa Spring Boot inatoa data za JSON pekee. Wanaamini kuwa lazima uweke programu ya React au Vue kwenye server tofauti kama Vercel au AWS.
Hili ni kosa.
Spring Boot inajumuisha embedded Apache Tomcat server. Hii ina maana kwamba unaweza kujenga programu za full-stack ndani ya faili moja la JAR.
Kutumia faili moja la JAR kunakupa faida kuu tatu:
- Hakuna matatizo ya CORS: Frontend na backend yako zinatumia port na domain moja.
- Gharama nafuu: Huhitaji server tofauti ya Node.js. Server moja ya Linux au Docker container inafanya kila kitu.
- Deployment rahisi: Mchakato mmoja wa build unashughulikia UI na server yako.
Hizi hapa ni njia nne za kujumuisha UI yako kwenye Spring Boot:
Server-Side Templating (SSR) Tumia Thymeleaf ku-render HTML kwenye server. Unaongeza starter dependency kwenye faili yako ya Maven na kutumia Controller kurudisha HTML templates. Ni rahisi na haraka.
Vaadin Vaadin inakuwezesha kujenga web apps za kisasa kwa kutumia Java pekee. Huandiki JavaScript au CSS. Vaadin inashughulikia React components kwa nyuma na kuzitoa kupitia Tomcat. Hii ni nzuri kwa waendelezaji wa Java wanaotaka kuepuka utata wa frontend.
JSF (JavaServer Faces) JSF ni chaguo imara kwa mifumo ya kibiashara (enterprise systems). Unaweza kuunganisha na PrimeFaces au BootsFaces ili kupata components za hali ya juu. Unahitaji tu kusajili FacesServlet kwenye Spring configuration yako.
Njia ya Indie Hacker (SPA Integration) Unaweza kujenga app ya React au Vite na kuhamisha build files kwenye folder la src/main/resources/static.
Ili kuwezesha mchakato huu kiotomatiki, tumia frontend-maven-plugin. Hii inafanya npm install na npm build wakati wa Maven build yako.
Kidokezo kimoja kwa watumiaji wa React: Ikiwa unatumia React Router, tengeneza Controller ili kuelekeza (redirect) njia zisizojulikana kwenda index.html. Hii inazuia makosa ya 404 wakati watumiaji wanapofanya refresh ukurasa.
Acha kutafuta server za ziada. Tumia nguvu ya embedded Tomcat yako.
Chanzo: https://dev.to/ganigurgah/spring-boot-is-not-just-a-rest-api-server-50hh