Witam,
Niedługo zaczynam implementacje pewnego serwisu internetowego. Serwis będzie posiadał dość duży wachlarz możliwości. Dotychczasowe założenia odnośnie architektury są dość standardowe:
-aplikacja będzie korzystała z frameworka Spring
-model danych (encje JPA/Hibernate)
-warstwa Dao (@Repository)
-warstwa serwisów komunikujaca sie z kontrolerami (transakcje na poziome seriwsow)
Natomiast nie wiem jak postąpić z widokiem. I tu mam pare pytań. (Jakiś czas temu zadawałem podobne pytanie ale rozwiązanie którego użyłem w poprzedniej aplikacji generalnie się nie sprawdziło za dobrze, dlatego czas na coś innego)
Wiadomo standardowym rozwizaniem jest Spring MVC (widok JSP) i z tego w znacznym stopniu chciałbym korzystać, ale..
Bardzo podoba mi się podejscie Single Page App z wykorzystaniem AngularJs-a, możliwość edycji zawartości bez odświeżania. Problem w tym, że moja aplikacja będzie duża i na pewno nie będzie pasowała do tej koncepcji. i teraz pytania,
- Czy jest sens łączyć te koncepcje? Czyli głównie spring MVC i w zależności od potrzeb AngularJs? To by wymagało implementacji standardowych kontrolerow, plus restowych kontrolerow, bez sensu troche... Jednak używanie samego Angulara daje piękne rozwiązanie wystawianie eleganckich restów i brak problemu z LazyInitializationException, natomiast Spring MVC tu sa problemy, ciągle nie znam dobrego podejścia do komunikacji widoku z modelem, używanie encji skutkuje powyższym Exceptionem natomiast jakiś rozwiązanie np z DTO dubluje kod, może jakieś inne rozwiązanie?
- Czy lepiej skupić się na jednej koncepcj, czy łączenie ich jest całkiem normalne? Może inne podejście?
- Chciałbym podzielić apke na moduły, zastanawiam się jak to zrobic najlepiej? Planuje w oddzielnym module zamieścic implementacje widoku i modelu ale nie wiem jak postąpić z dao, serwisami i kontrolerami, w jakim module powinno się to znaleźć? jak połączyć te pakiety zgodnie ze sztuką?
- Zależy mi na informacji w jaki sposób Wy projektujecie swoje aplikacje w połączeniu se Springiem, jakieś dobre nawyki podejścia?