2010-07-21 21 views
12

Pochodzę ze świata Struts 1. Teraz rozpoczynam nowy projekt i używamy Springa.Wady korzystania z pasków + wiosna vs wiosna MVC

Mogę użyć Spring MVC, ale widząc, jak proste jest korzystanie z Stripes (brak xml to duży plus) mam ochotę użyć tego z naszą marką klapsującą nową aplikację internetową Spring. Nie mam żadnego doświadczenia w paskach ani Spring MVC (poza podstawową aplikacją CRUD).

Pytanie brzmi, jakie są minusy używania Stripes w przeciwieństwie do Spring MVC? Kilka części aplikacji będzie RESTful, czy utrudni korzystanie z Stripes? A co z walidacją? Przypuszczam, że Stripes będzie łatwiejsze do wdrożenia, nie?

Odpowiedz

8

Paski to świetny framework. To była nasza struktura wyboru w ciągu ostatnich kilku lat i jeszcze nie zawiodła.

Jednakże, jeśli masz na myśli RESTful w tym sensie, że chcesz używać HTTP PUT/DELETE, itp. Paski mogą nie być twoją odpowiedzią. Myślę, że musiałbyś skonfigurować Filtry, albo dodatkową logikę w twoich ziarnach, nie byłoby to proste (jak wydaje się być na wiosnę od pobieżnego googlowania).

Z drugiej strony, jeśli masz na myśli takie rzeczy jak /app/delete/3 lub /app/update/4 & przepustowych params POST Stripes jest doskonałym wyborem.

Książka "Paski" (Pragmatic Programmers) wyjaśnia dobrze strukturę i ma rozdział poświęcony użyciu DI z wiosną. Wszystkie normalne dzwonki i gwizdki (w tym sprawdzanie poprawności) są doskonałe.

+2

Nie Nie będę używać PUT/DELETE. Ale będę używać dużo AJAX. Zwykle pozwoliłbym JQuery na POST/GET, a Servlet zwróci odpowiedź w JSON (która jest łatwa do parsowania przez JQuery). –

+2

Często robimy to. Stripes może albo zwrócić JavaScriptResolution (http://stripes.sourceforge.net/docs/current/javadoc/net/sourceforge/stripes/ajax/JavaScriptResolution.html), gdzie konwertuje obiekty Java na eval'able JSON lub może po prostu utworzyć JSON siebie i przekazać go ponownie jako StreamingResolution (http://stripes.sourceforge.net/docs/current/javadoc/net/sourceforge/stripes/action/StreamingResolution.html) – lucas

+0

Dzięki za linki JavaScriptResolution i StreamingResolution, nie Wiem o tych dwóch. –