Wpis z mikrobloga

via Wykop Mobilny (Android)
  • 2
#programowanie #java #spring #springboot #maven

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?
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ale ja nie potrzebuję oddzielnej aplikacji (dodatkowo problem dla adminów, bo się komplikują wdrożenia)


@mk321: może czas zmienić adminów, jeśli ogarnięcie frontu i backendu osobno to problem?
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@Enviador: ale po co ma być oddzielnie?

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?
  • Odpowiedz
@mk321: jak na moje to wystarczy wrzucic fronty do katalogu static w resources i beda serwowane przez serwer z jarki.

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
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@Kuriozal: no tak, mogę zbudować ręcznie front, wrzucić do static, zbudować backend, pilnować, żeby w folderze static git ignorował tylko te wrzucone pliki (bo przecież mogą być inne)... Tylko czy muszę robić to ręcznie?

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 to
  • Odpowiedz
@mk321: a co to za problem wrzucić aplikację w angluarze do resourców i podpiąć npm? robi się tak komercyjnie. ale również

2020

frontend w statycznych resourscach

frontend to się wrzuca na s3 i serwuje cache klientom w zależności od lokalizacji.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 1
@PrzegrywWykopek: i komercyjnie robi to się ręcznie? Albo każdy pisze skrypty w bashu, które będą to kopiować? Nie ma jakiego ładnego rozwiązania?

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).
  • Odpowiedz
@mk321:

i komercyjnie robi to się ręcznie? Albo każdy pisze skrypty w bashu, które będą to kopiować? Nie ma jakiego ładnego rozwiązania?


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.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@PrzegrywWykopek: nie używam Gradle tylko Maven. Może czas wreszcie się przerzucić. Ale myślałem że na jedno wychodzi (też tylko do pobierania zależności i odpalania pluginów). Tylko Gradle niby szybszy, bo robi równolegle (ale też słyszałem o problemach z szybkością budowania względem Mavena). Były też problemy z Gradle i Javą 11 w Springu. Wychodzi, że Maven jednak nadal stabilniejszy.

Miałem na myśli, że jak mam front i backend w jednym jar,
  • Odpowiedz
nie używam Gradle tylko Maven. Może czas wreszcie się przerzucić. Ale myślałem że na jedno wychodzi (też tylko do pobierania zależności i odpalania pluginów). Tylko Gradle niby szybszy, bo robi równolegle (ale też słyszałem o problemach z szybkością budowania względem Mavena). Były też problemy z Gradle i Javą 11 w Springu. Wychodzi, że Maven jednak nadal stabilniejszy.


@mk321: tutaj chodzi o taski gradle i to co umożliwiają. W skrócie możesz rozszerzyć
  • Odpowiedz
@mk321: "maven jest jednak nadal stabilniejszy" - po czym tak twierdzisz skoro z twoich odpowiedzi jasno wynika, ze nie miales nic wspolnego z czymkolwiek profesjonalnym? :)
  • Odpowiedz
@PrzegrywWykopek: >frontend to się wrzuca na s3 i serwuje cache klientom w zależności od lokalizacji.

To akurat spora przesada :P po pytaniu OPa widac, ze to jakas mala p-------a gdzie uzycie AWS jest sporym overkillem
  • Odpowiedz