2011-01-05 13 views
7

Pochodzę z pewnych doświadczeń z frameworkami MVC, a ostatnio zacząłem się interesować wiosną. Myślę, że to dobre ramy dla tego, co widziałem do tej pory. W każdym razie, w moich przeszłych doświadczeniach byłem przyzwyczajony do innego stylu programowania, szczególnie do struktury kontrolerów. Sposób w jaki byłem przyzwyczajony do zatrudniania kontrolerów był inny. Oczywiście zamapowałem w jakiś sposób do nich prośbę (myślę o strukturach z różnymi działaniami), ale wtedy naprawdę spodobało mi się to, że mogłeś przekazać działania innym kontrolerom, wtedy pozostaliby "aktywnym" kontrolerem, a ci byliby odpowiedzialni obsługi następnego żądania, może pochodzić z żądania HTTP lub z czegoś innego. Cieszyłem się tym, ponieważ bardzo dobrze było utrzymywać stan sesji użytkownika w sposób zautomatyzowany, dzięki czemu kod był czysty i rozdzielał różne sytuacje w różnych kontrolerach. Teraz czytałem Spring Web MVC, a dokumenty mówią tylko o kontrolerach, które odpowiadają na żądania, ale nie utrzymują stanu i nie ma słowa o kontrolowaniu kontrolerów (poza przekazywaniem) i utrzymywaniu stanu.Styl programowania sterowników sprężynowych

W jaki sposób zajmujesz się tymi tematami na wiosnę, czy istnieje inny sposób, czy też powinienem wdrożyć własne kontrolery stanu i klasy stanu/działania?

Mam nadzieję, że moje pytanie jest wystarczająco jasne i przepraszam za jego ogólność.

+0

W jakich sytuacjach chciałbyś mieć takie kontrolery łańcuchowe? – OrangeDog

+0

Zazwyczaj wiążę każdą prostą czynność z jednym kontrolerem, dzięki czemu mogę wyodrębnić logikę tej akcji (liczba zapytań, widoków i manipulacji danymi).Wtedy, gdy użytkownik wprowadza inną aktywność, zwykle przekazuję wszystko do kontrolera, który to robi. W ten sposób łatwiej jest zachowywać się i można ponownie użyć kodu. – gotch4

+0

Zróbmy przykład: załóżmy, że mam kontroler, który dba o pokazywanie widoku z numerami telefonów i wybierzmy, dodawajmy, edytujemy lub usuwamy. W każdej sytuacji, w której muszę wybrać numer w mojej aplikacji, przekażę ten kontroler, a następnie zwrócę wybraną liczbę. To właśnie miałem na myśli – gotch4

Odpowiedz

5

Wiosną MVC można użyć kontrolerów bezstanowych przesyłających żądanie/wywołujących zogniskowane ziarna sesji.

Ale jeśli jest to dobry pomysł lub nie zależy mocno od przypadku użycia. - Zrobiłbym to tylko wtedy, gdy jest tylko kilku z tych "dziwnych" kontrolerów. - Jeśli masz ich dużo, myślę, że warto szukać innego rozwiązania. (na przykład JSF ze sprężyną)

+0

Przykład fasoli z określeniem zakresu sesji? – gotch4

+1

Ziarna o ograniczonym zasięgu są ziarnami (a.k.a. fasolą java) są przechowywane w HttpSession. Przeczytaj: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-arguments – DwB

8

W języku Java różnica między stanowymi/bezstanowymi frameworkami sieciowymi jest zwykle opisywana jako różnica między strukturami opartymi na działaniu i komponentami.

Oba podejścia są ważne, ale zwykle przy wyborze ram utkniesz w sposób te ramy za prowadzenia go:

Ramki

wybierane Działanie:

popularnym elementem Ramki:

(Istnieją cour o wiele więcej, w obu kategoriach)

+0

Dzięki, ale nie wybieram ramy, chcę używać Springa, więc moje pytanie dotyczyło raczej praktyk programistycznych na wiosnę – gotch4

+0

@ gotch4 Dzięki? A więc głosowanie to twój sposób podziękowania? –

+0

@ gotch4 i odpowiedziałem na twoje pytanie. Odpowiedź brzmi: "Spring MVC nie działa w ten sposób". –

Powiązane problemy