2013-09-01 23 views
43

Niedawno natknąłem się na AngularJS. Jestem programistą webowym java. Chcę używać AngularJS wraz ze strukturą Spring-MVC. Ale na początek potrzebuję podstawowej podstawy (samouczek).AngularJS ze Spring-mvc

Wiem o podstawowych rzeczach AngularJS, ale jak je zintegrować z Spring-MVC. Przez większość czasu wiosna zwraca część jsp (s), a my dodajemy je za pomocą jsp-include, podczas gdy AngularJS oczekuje danych JSON przez większość czasu.

Odpowiedz

53

dwóch przypadkach:

  1. Twoja architektura jest pełna po stronie klienta: w tym przypadku integracja jest bardzo naturalna. Spring MVC udostępnia swoją usługę jako REST (JSON/XML), a aplikacja klienta z AngularJS pochłania Twój JSON. W tym przypadku aplikacja .war (Spring MVC) musi zostać wdrożona w kontenerze serwletów (np. Tomcat), a aplikacja kliencka może zostać wdrożona na tym samym serwerze lub na serwerze HTTP, takim jak Nginx lub Apache.

  2. Chcesz zachować generowanie stron w serwerze i używać tylko AngularJS do niektórych manipulacji DOM, więc twój kod musi zostać wdrożony w tym samym pliku .war (w folderze WEB-INF /).

Mieszanie dwóch podejść nie zawsze jest dobrym pomysłem. Możesz spróbować Thymeleaf pozostać w generowaniu strony po stronie serwera, a jednocześnie mieć szablon, testability i czysty kod widoku.

+0

Dziękuję za wgląd. Jeśli chodzi o wojnę (Spring-MVC), mam gotową aplikację z usługą REST. Powinienem mieć bezpośrednio strony .html w moich widokach lub powinienem używać jak zwykle strony .jsp z AngularJS, ponieważ w końcu, gdy są renderowane po stronie klienta, są to html. –

+3

Jeśli twoja aplikacja jest pełna, nie musisz iść z JSP. Wprowadzi złożoność, użyje tylko plików HTML. Zwróć uwagę na Ciebie Model bezpieczeństwa i autoryzacji, generowanie backendu (JSP) i korzystanie z zabezpieczeń wiosennych ułatwiają pracę dzięki plikowi JSP z wiosennymi zabezpieczeniami, będziesz musiał obsługiwać to ręcznie po stronie klienta. Ta dobra dyrektywa może ci pomóc https://github.com/witoldsz/angular-http-auth/ – Nabil

+0

Dzięki Nabil. Spróbuję tego. Obecnie zachowuję moją powłokę jako stronę jsp. Wszystkie częściowe są .html, ale na pewno zajrzę do podanego linku github. Z HTMLem martwiłem się o bezpieczeństwo –

36

Po prostu ustaw pliki angular.js jako pliki statyczne. W każdym razie nie powinno być tu nic prywatnego.

Użyj Spring MVC jako dostawcy usług REST zamiast JSP/Velocity/Any other Template view resolver.

Masz przykładowych projektów na stronach folowing:

+0

Dziękuję roztoczy. Przyjrzę się tym projektom i dyskusjom. –

+0

Pierwszy link jest bardzo dobry, Dzięki – userRaj

Powiązane problemy