• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Spring Boot i Angular 6

VPS Starter Arubacloud
0 głosów
1,043 wizyt
pytanie zadane 25 października 2018 w Java przez Tomek Reda Obywatel (1,110 p.)
edycja 25 października 2018 przez Tomek Reda

Witam Serdecznie. Chciałem sobie stworzyć aplikacje z wykorzystaniem Springu gradle  do back-endu i Angulara6 do front-endu. Tworze sobie projekt Spring bootowy importuje zależności itd.. itd.. Tworze potem w tym projekcie w katalogu src/main/webapp projekt Angularowy z wykorzystanie webStorma. Następnie do pliku gladle.build dodaje odpowiednie zależności do instalacji i zbudowania angulara. 

def webappDir = "$projectDir/src/main/webapp"
sourceSets {
    main {
        resources {
            srcDirs = ["$webappDir/dist", "$projectDir/src/main/resources"]
        }
    }
}

processResources {
    dependsOn "buildAngular"
}

task buildAngular(type:Exec) {
    dependsOn "installAngular"
    workingDir "$webappDir"
    inputs.dir "$webappDir"
    group = BasePlugin.BUILD_GROUP
//	outputs.dir "$webappDir/dist"
    if (System.getProperty("os.name").toUpperCase().contains("WINDOWS")){
        commandLine "ng.cmd", "build"
    } else {
        commandLine "ng", "build"
    }
}

task installAngular(type:Exec) {
    workingDir "$webappDir"
    inputs.dir "$webappDir"
    group = BasePlugin.BUILD_GROUP
//	outputs.dir "$webappDir/dist"
    if (System.getProperty("os.name").toUpperCase().contains("WINDOWS")){
        commandLine "npm.cmd", "install"
    } else {
        commandLine "npm", "install"
    }
}

Gdy w katalogu src/main/webapp daje "ng serce" i potem w przeglądarce odpalam localhost:4200 wyswietla się jakaś tam przykładowa strona z angulara. Gdy natomiast buduje aplikacje w springu "gradle jar" a nastepnie odpalam localhost:8080  to powinno wyświetlić mi to samo co na localhost:4200 jednak nie wyświetla mi tego samego co na localhost:4200 jest pusta strona tak jakby nic nie było...Co robie nie tak ? Chciałbym iść  dalej zrobić routing w angularze itd ale póki to nie działa to nie ma sensu. Mógłby ktoś mnie naprowadzić ? Bo siedziałem wczoraj cały dzień i nic nie udało się wykombinować .. Link do gita z projektem.

https://github.com/TomaszReda/library.git

1 odpowiedź

0 głosów
odpowiedź 25 października 2018 przez Wiciorny Ekspert (277,600 p.)

A zmieniłeś port dla angulara?

W pliku angular.json: 

projects": {
    "project-name": {
        ...
        "architect": {
            "serve": {
                "options": {
                  "host": "0.0.0.0",
                  "port": 5000
                }
            }
        }
        ...
    }
}

ewentualnie za pomocą cli - lepsza opcja 

dla angular-cli.json 


  "defaults": {
    "serve": {
      "host": "0.0.0.0",
      "port": 8080 
    }
  }
}

lub po prostu     

komenda ng serve --port  [ numer portu]

komentarz 25 października 2018 przez Tomek Reda Obywatel (1,110 p.)
A to nie czasem spring zarządza portem ?

WebStorem odpalam cześć front-endową i odpala się na localhost:4200 i wszystko działa  . Tak więc wyłączam i Intellij IDEA odpalam back-end i po zainstalowaniu angulara i zbudowaniu pluginem projektu powinny być normalnie pod localhost;8080 to samo co pod localhost:4200..

 

Chodzi mi o to żeby IntellijIdea np odpalić aplikacje front-end i backe-endowa razem. I żeby działało na localhost:8080. Nie o to żeby odpalać oddzielnie front  - back-end
komentarz 25 października 2018 przez Wiciorny Ekspert (277,600 p.)
no to odpowiem tam, w jaki sposob spring boot ma obsluzyc strone startowa Angulara na swoim porcie skoro nie stworzyles nawet kontrolera? ;] do obslugi rzadania ?
komentarz 25 października 2018 przez Tomek Reda Obywatel (1,110 p.)
A po zainstalowaniu angulara nie powinien brać domyslnie z angulara ?

Np jakbym stworzył w angularu routing typu login,register ?

to pod localhost:8080/login nie powinna sie wyświetlić strona z logowaniem np ?

Sorki za głupie pytania ale z angulara zrobiłem tylko 1 prosty kurs i tyle... I nie mam pojecia jak połączyć te aplikacje a ciezko znalezc jakis przykład..
komentarz 25 października 2018 przez Wiciorny Ekspert (277,600 p.)

https://dzone.com/articles/building-a-web-app-using-spring-boot-angular-6-and

 

 no nie.. bo skad on ma wiedziec jaki URL i co wgl ma obslugiwac ? w jaki sposob ma to obslugiwac itp... to nie dziala tak za automatu 


@Controller
@RequestMapping("/home")
public class HomeController {
       @GetMapping
       public String home(Model model) {
              return "forward:/index.html";
       }
}

 

komentarz 25 października 2018 przez Tomek Reda Obywatel (1,110 p.)
No dobra ale w takim razie to po co w ogóle robić routing w angularze skoro i tak musimy strzelać urlami w kontrolerach ?

Np w pracy mam aplikacje reactową + spring boot i czegoś takiego nie ma ?

Czy react az tak róznicy sie od angulara ?
komentarz 25 października 2018 przez Wiciorny Ekspert (277,600 p.)

na pewno są Controlery jesli jest to boot+ react... bierzesz się za coś nie znając podstaw? poczytaj czym jest

SPRING MVC- jak działa, czym jest dispatcher servlet

czym jest Handling mapping,  struktura działania REST API... 

komentarz 26 października 2018 przez Tomek Reda Obywatel (1,110 p.)
Myśle ze mam wystarczające podstawy xdddd

Jakby ktoś miał taki sam problem to rozwiązaniem jego przerzucenie z angulara (folder dist) do src/main/resources i spring automatycznie wykryje index.html i go odpali pod localhost:8080 dalej jeśli mamy routing w angularze wszystko będzie śmigać :)

Podobne pytania

0 głosów
2 odpowiedzi 961 wizyt
pytanie zadane 11 grudnia 2018 w Java przez Tomek Reda Obywatel (1,110 p.)
0 głosów
1 odpowiedź 175 wizyt
pytanie zadane 16 kwietnia 2023 w Java przez mm Użytkownik (890 p.)
0 głosów
0 odpowiedzi 791 wizyt
pytanie zadane 23 stycznia 2019 w Java przez Tomek Reda Obywatel (1,110 p.)

93,028 zapytań

141,991 odpowiedzi

321,294 komentarzy

62,375 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...