Jaka jest różnica między Spring, Struts, Hibernacja, JavaServer Faces, Tapestry?

199

Czy mogę wiedzieć, jaka jest różnica między:

  1. Wiosna
  2. Rozpórki
  3. Rozpórki 2
  4. Hibernować
  5. JavaServer Faces
  6. Strony JavaServer
  7. Gobelin

Czy te technologie / ramy wzajemnie się uzupełniają? A może są dla siebie alternatywami (po użyciu jednego z nich nie muszę używać drugiego)?

Dzięki.

CMW
źródło

Odpowiedzi:

267
  1. Sprężyna jest pojemnikiem IoC (przynajmniej rdzeniem sprężyny) i służy do łączenia przedmiotów za pomocą wstrzykiwania zależności. Spring zapewnia dodatkowe usługi, takie jak zarządzanie transakcjami i bezproblemowa integracja różnych innych technologii.
  2. Struts to platforma prezentacji oparta na działaniu (ale nie używaj jej do nowego rozwoju).
  3. Struts 2 to platforma prezentacji oparta na akcji , wersja 2 powyższej (utworzona z połączenia WebWork z Struts).
  4. Hibernacja to narzędzie do mapowania relacyjno-obiektowego, struktura utrwalania .
  5. JavaServer Faces to platforma prezentacji oparta na komponentach .
  6. JavaServer Pages to technologia wyświetlania używana we wszystkich wymienionych ramach prezentacji dla tego widoku.
  7. Tapestry to kolejna platforma prezentacji oparta na komponentach .

Podsumowując:

  • Struts 2, JSF, Tapestry (i Wicket, Spring MVC, Stripes) to ramy prezentacji . Jeśli użyjesz jednego z nich, nie użyjesz innego.
  • Hibernacja to trwałości i służy do utrwalania obiektów Java w relacyjnej bazie danych.
  • Sprężyny można użyć do połączenia tego wszystkiego razem i zapewnienia deklaratywnego zarządzania transakcjami.

Nie chcę sprawiać, aby sprawy były bardziej mylące, ale zauważ, że Java EE 6 zapewnia nowoczesny, znormalizowany i bardzo ładny odpowiednik powyższych frameworków: JSF 2.0 i Facelets do prezentacji, JPA 2.0 dla trwałości, Wstrzykiwanie zależności itp. nowy rozwój, jest to poważna opcja IMO , Java EE 6 to świetny stos.

Zobacz też

Pascal Thivent
źródło
2
Chciałbym zauważyć, że w tym kontekście porównawczym niektórzy ludzie używają słowa Spring również w odniesieniu do własnego frameworka MVC (który jest znacznie ładniejszy niż Struts IMO).
MetroidFan2002
Ładnie wyjaśnione, ale wciąż jest zbyt techniczne. Radzę ci wyjaśnić to w laickim terminie. W każdym razie zrobiły to linki na końcu.
noob
Odpowiedź jest rzeczywiście świetnym punktem wyjścia, ale można ją ulepszyć, wyjaśniając główne wprowadzone pojęcia (ramy oparte na żądaniach vs ramy oparte na komponentach, kontenery IoC, ramy prezentacji vs. trwałość ...) W obecnej postaci wymaga wielu dodatkowych googeling, ale to wciąż dobra odpowiedź i świetny punkt wyjścia! Głosuj.
Wouter
19

Ogólnie...

Hibernacja służy do obsługi operacji na bazie danych. Istnieje bogaty zestaw funkcji narzędzia bazy danych, który zmniejsza liczbę wierszy kodu. Szczególnie musisz przeczytać @ Adnotacja hibernacji. Jest to struktura ORM i warstwa trwałości.

Sprężyna zapewnia bogaty zestaw mechanizmu roboczego opartego na wtrysku. Obecnie wiosna jest dobrze znana. Musisz także przeczytać o Spring AOP. Pomiędzy Struts i Hibernacją istnieje pomost. Głównie Wiosna zapewnia tego rodzaju narzędzie.

Struts2 zapewnia programowanie oparte na działaniu. Istnieje bogaty zestaw tagów Struts. Struts sprawdzają się w programowaniu opartym na działaniu, więc musisz zachować odpowiednią kontrolę nad swoim widokiem.

Ponadto Tapestry to inna platforma dla Java. W którym musisz obsługiwać tylko .tml(plik szablonu). Musisz utworzyć dwa główne pliki dla dowolnej klasy. Jedna to klasa JAVA, a druga to jej szablon. Oba nazwiska są takie same. Gobelin automatycznie wywołuje powiązane klasy.

Pradip Bhatt
źródło
7

Można zobaczyć przegląd i ranking dla siebie tutaj . Hibernacja jest ORM, więc możesz użyć albo rozpórek + Hiberante, albo sprężyny + hibernacji, aby zbudować aplikację internetową. Różne frameworki internetowe i wiele z nich stanowią dla siebie alternatywę.

Srikar Doddi
źródło
4

Wiosna to platforma aplikacji, która zajmuje się IOC (Inversion of Control).

Struts 2 to platforma MVC aplikacji internetowej, która zajmuje się działaniami.

Hibernacja to ORM (mapowanie obiektowo-relacyjne), które zajmuje się trwałymi danymi.

Nishat Lakhani
źródło
3

W skrócie,

Struts jest przeznaczony do front-endowego rozwoju strony internetowej

Hibernacja służy do tworzenia zaplecza witryny

Spring służy do tworzenia pełnych stosów strony internetowej, w której Spring MVC (Model-View-Controller) jest przeznaczony dla Front-end. ORM, JDBC do dostępu do danych / integracji (backend). itp

Tushar Jumani
źródło
2

W stanie hibernacji nie musisz zawracać sobie głowy tworzeniem tabeli w SQL i nie musisz pamiętać połączenia, przygotowane polecenie takie jak dane są utrwalane w bazie danych. Zasadniczo ułatwia to życie programistom.

dipak
źródło
2

Spring jest lekkim i otwartym szkieletem stworzonym przez Rod Johnsona w 2003 roku. Spring jest kompletnym i modułowym szkieletem, Spring Framework może być używany do wszystkich implementacji warstw w aplikacji w czasie rzeczywistym lub sprężyna może być używana do rozwoju konkretnej warstwy aplikacji w czasie rzeczywistym.

Struts to platforma aplikacji internetowych typu open source do tworzenia aplikacji internetowych Java EE. Wykorzystuje i rozszerza Java Servlet API, aby zachęcić programistów do przyjęcia architektury model-view-controller (MVC). Został pierwotnie stworzony przez Craiga McClanahana i podarowany Fundacji Apache w maju 2000 roku.

Poniżej znajduje się tabela porównawcza różnic między Spring a Strut Framework

wprowadź opis zdjęcia tutaj

VyTcdc
źródło
0

Strony i elementy gobelinów to proste obiekty POJO (Plain Old Java Object) składające się z programów pobierających i ustawiających dla łatwego dostępu do funkcji języka Java.

Nishat Lakhani
źródło
0

Różnice między sprężyną , rozpórkami i hibernacją są następujące:

  1. Wiosna jest strukturą aplikacji, ale Struts i hibernacja nie.
  2. Wiosna i Hibernacja są lekkie, ale Struts 2 nie.
  3. Spring and Hibernate ma architekturę warstwową, ale Struts 2 nie.
  4. Sprężyna i hibernacja obsługują luźne połączenie, ale Struts 2 nie.
  5. Struts 2 i Hibernate mają bibliotekę znaczników, ale Spring nie.
  6. Spring i Hibernate mają łatwą integrację z technologiami ORM, ale Struts nie.
  7. Struts 2 ma łatwą integrację z technologiami po stronie klienta, ale Spring i Hibernate nie mają.
Raman Gupta
źródło