2012-05-27 16 views
7

Jakie są powody, dla których powinieneś zbudować swoją aplikację internetową z surowymi serwletami Java lub używając Spring MVC (lub innych frameworków)?Servlet Raw vs. Spring MVC

Czy są wyjątki, kiedy należy unikać sprężynowego MVC, jakie są zalety robienia tego z surowymi serwletami?

Odpowiedz

14

Jeśli budujesz naprawdę szybkie i brudne demo, którego nie zamierzasz później rozszerzać, wiosna może spowodować wiele dodatkowych problemów z konfiguracją (nie tak naprawdę, jeśli zrobiłeś to wcześniej, ale zawsze kończę walcząc z nim w taki czy inny sposób), więc może to być czas na rozważenie użycia zwykłych starych serwletów. Zasadniczo jednak wszystko, co wykracza poza superszybkie i brudne demo, przy użyciu jakiejś formy ram MVC znacznie ułatwi życie w przyszłości i będzie zgodne z najlepszymi praktykami. Wiosna sprawia, że ​​rzeczy są bardzo proste, wystarczy poświęcić trochę czasu na konfigurację wszystkiego.

Powinienem zauważyć, że nic nie można zrobić z serwletami Java, których nie można zrobić ze Źródłem. Dużą różnicą jest czas konfiguracji.

Edit: Warto zauważyć, że kiedy pisał tę odpowiedź, byłem nieświadomy wiosennym Boot że jest całkiem łatwo dostać się działającej korzystając albo z wbudowanego serwera WWW lub bardziej konwencjonalny pojemnik internetowej. Oto link do przykładu szybkiego startu: http://projects.spring.io/spring-boot/#quick-start

+0

Obecnie zmagam się z przejściem na Spring, ponieważ napisałem już całkiem sporo kodu. Chociaż refaktoryzacja zawsze jest dobra. Dotyczy to również rzeczy takich jak CRUD dla jednostek baz danych, takich jak Spring Roo. – Mahoni

+0

Nie używam Spring MVC, ale myślę o tym, więc zastanawiam się, czy Spring może spowolnić lub zwiększyć zużycie pamięci aplikacji? – nexus

+0

@nexus, powinieneś opublikować to jako inne pytanie –

4

Nie używam dużo Springa. Ale nie widzę, jak miałoby to duży wpływ na wydajność. MVC mogą pomóc, ale mogą stworzyć bałagan i dodatkową pracę i frustrację. Stara dobra droga jest wystarczająco dobra dla większości projektów realizowanych przez jednego programistę. MVC może pomóc, gdy jest więcej niż jeden programista.

Używałbym zwykłego serwletu/jsp dla większości projektów. Jeśli potrzebuję komponentów wielokrotnego użytku, używam furtki. Serwlety są dostarczane z JSP/freemarker/velocity lub innym szablonem do prezentacji.

Jeśli postępujesz zgodnie ze wzorem nazw dla Serwletów/JSP, nie potrzebuję Spring MVC.

+2

Spring MVC może być również używany z silnik szablonowy –

6

Mam opracowane projekty zarówno z serwletu surowego i ramy aplikacji internetowych. Framework zapewnia wszystko, wystarczy tylko skonfigurować i skonfigurować środowisko, kodowanie jest znacznie łatwiejsze. Powoduje to, że nic nie wiesz o web dev. Jednak kod z surowym API i serwletem daje szansę na zdobycie doświadczenia i bycie programistą.

0

Uważam, że dzięki dodatkowi wiosennej wersji 3+ znacznie łatwiejsze jest załadowanie aplikacji Spring Web ze wszystkimi podstawami. Zaletą Spring MVC jest to, że po uruchomieniu kontekstu aplikacji i połączenia z bazą danych niezwykle łatwe staje się tworzenie nowych kontrolerów, a ponadto jest to o wiele bardziej logiczna architektura, którą nowi programiści mogą znaleźć łatwiej, gdy lepiej się z nią zapoznają. .

Faktycznie, w moim poprzednim miejscu pracy, byliśmy w trakcie budowania aplikacji Java Servlet Web, ale stwierdziliśmy, że musieliśmy stworzyć własną architekturę lub grzbiet aplikacji i to jest w rzeczywistości więcej pracy. Wiosna może sobie z tym poradzić, co oznacza, że ​​programiści mogą zająć się logiką aplikacji, zamiast martwić się zbytnio architekturą.

3

Servlet technologii służy do bardziej ogólny serwerze przedłużeniu bocznej paradygmat żądanie-odpowiedź. A Spring po prostu używa go do aplikacji WWW przez HTTP.

A niektóre cytat stąd: http://www.reddit.com/r/java/comments/29f3ul/why_is_spring_mvc_better_than_servlets_jsp/

serwlety są oparte na API niskiego poziomu obsługi żądań i odpowiedzi. Struktury internetowe, takie jak Spring MVC, mają na celu ułatwienie budowania aplikacji internetowych obsługujących HTTP, które obsługują żądania i odpowiedzi HTTP, . Większość frameworków WWW Java, w tym Spring MVC, wykorzystuje serwlety za kulisami.

Możesz użyć serwletów do napisania aplikacji internetowej, ale musisz ręcznie obsłużyć wszystkie szczegóły ręcznie. Otrzymasz bardzo niewielką pomoc przy typowych stronach internetowych, takich jak sprawdzanie poprawności, REST, żądanie/treść odpowiedzi dla JSON, tworzenie formularzy itp. W efekcie otrzymasz wiele kodu użytkowego , aby wesprzeć swoją aplikację internetową.

Struktury internetowe są zaprojektowane tak, aby uprościć wszystkie te elementy. Mając Spring MVC, nie przejmujesz się ręcznym obsługą żądania i odpowiedzi, nawet jeśli nadal możesz uzyskać do nich dostęp , jeśli potrzebujesz. Chcesz zwrócić JSON w Spring MVC? Po prostu dodaj adnotację @ResponseBody, a Spring dołączy ją. Chcesz RESTful URL? Łatwo. Weryfikacja danych wejściowych? Bułka z masłem. Chcesz powiązać dane formularza z obiektem ? Prosty. Przy pomocy serwletów musisz ręcznie wykonać wszystkie te czynności.

Korzystanie z surowych serwletów może być jednak dobrym doświadczeniem. To naprawdę pomaga w wyjaśnieniu, w jaki sposób ramy sieciowe ułatwiają życie!