2009-06-06 12 views
11

Jakie są zalety/wady szwu nad sprężyną? Dlaczego miałbym używać Seam zamiast wiosny?Jakie są zalety/wady szwy nad sprężyną?

Czy jest coś, co można zrobić w Seam, czego nie można zrobić na wiosnę? Coś na wiosnę, czego nie można zrobić w Seam?

Co z architekturą stateful/stateless? Jestem użytkownikiem Spring, więc jestem oczywiście stronniczy.

Odpowiedz

22

Dlaczego wiosna?

  • Cleaner kod
  • Usprawnione aplikacja konfiguracja
  • Nicea integracja z popularnymi produktami open source
  • Pierwsza klasa wsparcie AOP
  • bezpieczeństwa Przedsiębiorstwo skalę: Acegi
  • Wysoce elastyczny MVC
  • Abstracted dostęp do danych (JDBC jest w porządku)
  • Enterprise Java bez EJB
  • Testowanie jest łatwy

Dlaczego Seam?

  • Merge Java EE 5 standardów (EJB 3.0, JPA, JSF, Adnotacja) bezproblemowo
  • Stateful projektem
  • bijection
  • Zintegrowany Ajax (ICEfaces i Ajax4JSF)
  • integracja procesów biznesowych (jBPM)
  • Integracja reguł biznesowych (Drools)
  • Zarządzanie obszarem roboczym
  • Dostarcz kompletny stos (z JBoss & RedHat)
  • Seam Tekst i ulepszenia EL
  • Prawdopodobnie będzie standard (JSR-299: fasola web)

Od ramowego Deathmatch: Wiosna vs szew. Thomas Wiradikusuma (Wiosna). Joshua Jackson (Seam). Java User Group Indonesia. JaMU 07.03. 17 marca 2007 Prezentacja power point here

3

Szew zapewni ładną, ah, bezproblemową integrację pomiędzy komponentami, które tworzą stos szwu. Wszystko to jest bardzo miłe, jeśli tylko pozostaniesz w tym stosie, w modelu szewowym i robiąc rzeczy. Wszystko zaczyna wyglądać mniej przekonująco, jak tylko zaczniesz robić coś niezwykłego.

Jeśli nie jest to zbyt ogólne uogólnienie, Seam jest pod tym względem bardzo "mikrosofty". To nie jest złe, to tylko stylistyczna rzecz. Wiosna jest bardziej otwarta i wymaga więcej wysiłku, aby się rozwijać, ale w końcu jest bardziej elastyczna i bardziej otwarta.

2

Możesz używać sprężyny i szwu razem - Wiosna dla komponentów zaplecza, Szew do poprawy warstwy internetowej (JSF/GWT/Wicket) i innych rzeczy. Szew oferuje wiele funkcji Spring (tj.Kontener IoC, zarządzanie transakcjami) - w projekcie możesz zdecydować - implementacja czarownic do użycia. Więcej szczegółów na temat integracji szwu ze sprężyną - "Seam in Action - free bonus chapter"

2

Porównajmy dwa.

Co jest wspólne?

Obie są open source, podążają za architekturą MVC i mają frontowy kontroler oparty na serwletach.

Zalety Wiosna MVC

  • Wydłużenie poprzeczne.
  • Widok może być rozwijany za pomocą JSP i HTML. Możesz także wtyczki innych, takich jak PHP lub prędkość.
  • Ma predefiniowaną dużą liczbę kontrolerów.
  • Wbudowany po wyjęciu z pudełka z ramą Spring.

Zalety Seam

  • Przedłużenie JSF
  • Zobacz mogą być opracowane z wykorzystaniem JSF komponentu biblioteki. Istnieje duża liczba dostawców do wyboru.
  • Integruje podmioty WZP z warstwy internetowej
  • oparty Adnotacja walidacja
  • integruje się z EJB 3.0
  • odchodzący skrzynki jBPM wsparcie który zawiera definicje przebiegu procesu.
  • Integruje się z Drools, w którym można definiować reguły biznesowe warstwy internetowej.
  • Dobra pomoc dla społeczności.

Wnioski

Od Seam jest zbudowany na JSF, to ma dużą liczbę bibliotek UI komponent do wyboru. Wykorzystuje lepiej stos Java EE. Ma wiele interesujących modułów zintegrowanych wcześniej.

Spring MVC jest zbudowany na Struts i Spring, więc będzie ponownie używał Spring framework stack znacznie lepiej niż inne. Ale widok jest zbudowany przy użyciu JSP, więc musimy polegać na dostawcach bibliotek znaczników JSP, aby budować bogate komponenty.

Szew ramy byłby lepszym wyborem, ponieważ wiosenne ramy są w każdym razie wystarczająco rozszerzalne, aby mogły zostać wykorzystane przez Szew.

+4

'Spring MVC jest zbudowany na Struts i Spring', Spring nigdy nie został zbudowany na Struts. –

+1

"Ale widok jest zbudowany przy użyciu JSP [...]". JSP to _na_ opcja. Zaletą Spring MVC jest to, że możesz wybrać dowolną technologię widoku. – James

5

Chociaż szew ma wiele zalet w porównaniu do wiosny, istnieje magiczne słowo, na które naprawdę warto zwrócić uwagę i to jest WYDAJNOŚĆ !!! jeśli nie martwisz się o problemy z wydajnością, pójdę z szwem. Z drugiej strony, jeśli chcesz, aby twoja aplikacja była tak szybka jak to tylko możliwe, a twój sprzęt jest ograniczony, użyłbym sprężyny. Nie twierdzę, że nie można tworzyć szybkich aplikacji z szwem, ale aby to zrobić, trzeba naprawdę wiedzieć, co robisz. Użyłem ich obu (nie jestem guru w żadnym z nich) i dowiedziałem się, że chociaż wiosna wymaga więcej wysiłku, aby zbudować to, czego chcesz, na koniec wynik jest bardziej elastyczny i działa lepiej.Nie sądzę, że jest coś, co można zrobić w jednym schemacie, że nie można tego zrobić w drugim, mówiąc, że pamiętam, że nie jestem ekspertem od żadnego z nich.