Aktywne Wpisy
Tumurochir +317
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Skopiuj link
Skopiuj linkTa treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Wykop.pl
Podróże
Gospodarka
Ukraina
Technologia
Motoryzacja
Sport
Rozrywka
Informacje
Ciekawostki
Jeśli robicie małą aplikację w Spring Boocie to po prostu uruchamiacie ją jako JAR.
Ale co jak do tej aplikacji ma dojść jakiś mały frontend (np. formularz, który będzie strzelał do tego backendu i jakaś pobierana lista)?
Kiedyś robiło się tak:
- MVC i front w JSP - już tak się nie robi,
- MVC i front w Thymeleaf - też już stare i chcę mieć one page app,
- Front w HTML i JS, do tego jQuery albo inny framework pobierany jako JS w index.html, wszystko wrzucone do resource apki backendowej.
Teraz front robi się w Angular/React (budowane przez Webpack i npm, a nie zwykły plik index.html) i stawia jako oddzielną aplikację.
Ale ja nie potrzebuję oddzielnej aplikacji (dodatkowo problem dla adminów, bo się komplikują wdrożenia), chcę mieć to w jednym jarze.
Jak do tego podchodzicie?
Pakujecie Mavenem (który plugin?) czy jak inaczej?
@mk321: może czas zmienić adminów, jeśli ogarnięcie frontu i backendu osobno to problem?
Robię bardzo małe aplikacje, których używa kilka osób. Odpalam jar-a i aplikacja stoi. Po co mam to komplikować jak nic mi to nie daje?
Mozesz sobie podpiac zeby podczas budowania mavenem/gradlem odpalal sie jakis webpack (czy co to sie teraz uzywa na rakowych frontach ;p) i jako target mial static
Istnieje plugin do Mavena, który niby to robi automatycznie. Ale czy to dobre podejście? Ten plugin jest mało popularny, rozwijamy głównie przez jedną osobę, więc w każdej chwili może już nie być wspierany.
Nie wiem jak inni
frontend to się wrzuca na s3 i serwuje cache klientom w zależności od lokalizacji.
Jak mam front i backend na jednym serwerze, to łatwiej o zabezpieczenia. Wszystkie CORS-y itd. mają być dostępne tylko "od siebie" i z głowy. Jak mam dwie maszyny (np. S3) to już muszę myśleć skąd można strzelić, a skąd nie (i przy zmianie maszyny backendowej zmieniać konfigurację na frontendowej).
Gradle i taski, w tym celu został stworzony gradle. Maven to fajne narzędzie, gdy jedyne co potrzebujesz, to zaciągnąć zależności i podpiąć jakiś plugin. W przypadku takiego angularjs nie miałeś jakiś fancy procesów, co najwyżej minifikacja. W Angularze 2 jest już inaczej, bo musisz przepuścić przez translator typescript. Ale
Miałem na myśli, że jak mam front i backend w jednym jar, to
@mk321: tutaj chodzi o taski gradle i to co umożliwiają. W skrócie możesz rozszerzyć
To akurat spora przesada :P po pytaniu OPa widac, ze to jakas mala #!$%@? gdzie uzycie AWS jest sporym overkillem
Lap to:
https://blogg.kantega.no/webapp-with-create-react-app-and-spring-boot/
I #!$%@? tych co mowia o 2 apkach na osobnych portach xd
Komentarz usunięty przez moderatora
@PrzegrywWykopek: a czyli oddzielna "usługa" AWS, tak jak pisałem, ze takie CDN (nawet sami tak to opisują na stronie: https://aws.amazon.com/cloudfront/ ).
@PrzegrywWykopek: jak mam Spring Boota to na Tomcat/Jett embedded raczej dużo nie ustawiam. A ten cache w Springu to chyba całkiem co innego niż cache na poziomie sieci.
@Kuriozal: po
Właśnie o ten plugin mi chodziło:
com.github.eirslett:frontend-maven-plugin
(nie chciałem sam podawać, żeby nie sugerować odpowiedzi)
Czyli jednak po prostu się go używa.