Struts vs Struts2
Struts (znany również jako Apache Struts lub Struts 1) to wieloplatformowa platforma open source napisana w Javie, która jest przeznaczona do programowania aplikacji internetowych Java EE. Była to jedna z pierwszych platform aplikacji internetowych Java EE. Ale kilka lat później pojawiła się Struts2 (lub Struts wersja 2), która była zupełnie inną i znacznie ulepszoną strukturą aplikacji internetowych. Rozwiązano kilka problemów, które w pierwotnej wersji były postrzegane jako braki. Teraz Struts2 jest bardzo intensywnie wykorzystywany do tworzenia aplikacji Java EE na świecie.
Co to jest Struts?
Struktura Struts (Struts 1) była jedną z pierwszych platform aplikacji internetowych do tworzenia aplikacji internetowych Java EE. Struktura Struts zachęca do korzystania z architektury MVC (Model-View-Controller). Jest rozszerzeniem Java Servlet API. Craig McClanahan jest oryginalnym twórcą Struts. Początkowo był znany jako Jakaratha Struts i był utrzymywany w ramach Jakarta Project of Apache Software Foundation. Jest wydany na licencji Apache License 2.0. Struktura Struts nazywana jest strukturą opartą na żądaniach i składa się z trzech głównych komponentów: procedury obsługi żądań, procedury odpowiedzi i biblioteki znaczników. Standardowy identyfikator URI (Uniform Resource Identifier) jest odwzorowany na moduł obsługi żądań. Obsługa odpowiedzi jest odpowiedzialna za przekazanie kontroli. Do tworzenia interaktywnych aplikacji z formularzami można wykorzystać funkcje oferowane przez bibliotekę znaczników. Struts obsługuje aplikacje REST i różne technologie, takie jak SOAP, AJAX itp.
Co to jest Struts2?
Środowisko Struts było postrzegane jako zawierające pewne ograniczenia (głównie brak separacji między warstwą prezentacji, warstwą obsługi żądań i modelem) przez deweloperów Java EE, a zatem kilka lat później pojawiła się Struts2. W rzeczywistości Struts2 był zupełnie inny niż Struts. W rzeczywistości nie mieli nawet tej samej bazy kodu, ponieważ Struts2 był po prostu wynikiem zmiany nazwy frameworka WebWork 2.2 (tj. Społeczności WebWork i Struts, które pracowały osobno przez pewien czas, ostatecznie dołączyły do rąk, aby wymyślić Struts2). Obecna stabilna wersja to wersja 2.2.3, która została wydana w maju 2011 roku.
Jaka jest różnica między Struts a Struts2?
Jednym z wielu problemów frameworka Struts była potrzeba programowania do klas abstrakcyjnych zamiast interfejsów. Zostało to rozwiązane przez framework Struts2. Na przykład środowisko Struts wymagało rozszerzenia klas Action z abstrakcyjnych klas podstawowych, ale Struts2 Actions mogą implementować interfejs Action. Ze względu na różnice w modelu wątków między dwiema wersjami problemy bezpieczeństwa wątków, które pojawiły się w środowisku Struts dotyczące obiektów Action, nie występują w środowisku Struts2. Powodem jest to, że obiekty akcji Struts2 są tworzone dla każdego żądania, podczas gdy akcja w Struts ma tylko jedną instancję do obsługi wszystkich żądań dla tej akcji. W przeciwieństwie do akcji w środowisku Struts, akcje Struts2 nie są zależne od interfejsu API serwletu.
Testowalność frameworku Struts2 jest stosunkowo wyższa niż frameworku Struts. Możesz przetestować akcje Struts2, wykonując trzy kroki: tworzenie instancji, ustawianie właściwości i wywoływanie metod. Zbieranie danych wejściowych jest łatwiejsze w środowisku Struts2, ponieważ właściwości akcji są używane jako właściwości wejściowe, bez konieczności utrzymywania drugiego obiektu wejściowego. Oprócz obsługi integracji JSTL (która jest obecna w Struts), środowisko Struts2 może używać bardziej wydajnego i ekspresyjnego OGNL (Object Graph Notation Language). Do konwersji typów Strut i Strut2 używają odpowiednio Commons-Beanutils i OGNL. Z powodu tych ulepszeń framework Struts2 jest uważany za bardzo dojrzały framework i jest bardzo popularny wśród programistów Java EE. Z drugiej strony środowisko Struts jest obecnie uważane za przestarzałe.