Struts vs Struts2
Struts (známe tiež ako Apache Struts alebo Struts 1) je platforma s otvoreným zdrojovým kódom napísaná v jazyku Java, ktorá je určená na vývoj webových aplikácií Java EE. Bol to jeden z počiatočných rámcov webových aplikácií Java EE. Ale o niekoľko rokov neskôr prišli Struts2 (alebo Struts verzia 2) a išlo o úplne iný a vysoko vylepšený rámec webových aplikácií. Zaoberala sa niekoľkými problémami, ktoré boli v pôvodnej verzii vnímané ako nedostatky. Teraz sa Struts2 používa veľmi intenzívne na vývoj aplikácií Java EE vo svete.
Čo je to Struts?
Rámec Struts (Struts 1) bol jedným z počiatočných rámcov webových aplikácií pre vývoj webových aplikácií Java EE. Rámec Struts podporuje použitie architektúry MVC (Model-View-Controller). Jedná sa o rozšírenie Java Servlet API. Craig McClanahan je pôvodný tvorca Struts. Spočiatku to bolo známe ako Jakaratha Struts a bolo udržiavané v rámci projektu Jakarta projektu Apache Software Foundation. Vydáva sa pod licenciou Apache License 2.0. Rámec Struts sa nazýva rámec založený na požiadavkách a pozostáva z troch hlavných komponentov: obsluhy žiadostí, obsluhy odpovedí a knižnice značiek. Štandardný identifikátor URI (Uniform Resource Identifier) je mapovaný do obsluhy žiadosti. Obsluha odpovedí je zodpovedná za prenos kontroly. Na vytvorenie interaktívnych aplikácií s formulármi je možné využiť funkcie, ktoré ponúka knižnica značiek. Podpery podporujú aplikácie REST a rôzne technológie ako SOAP, AJAX atď.
Čo je Struts2?
Rámec Struts bol vnímaný tak, že obsahoval určité obmedzenia (hlavne nedostatok separácie medzi prezentačnou vrstvou, vrstvou na spracovanie žiadostí a modelom) vývojármi Java EE v tom čase, a následne o niekoľko rokov neskôr prišli Struts2. V skutočnosti bol Struts2 úplne iný ako Struts. V skutočnosti ani nezdieľali rovnakú kódovú základňu, pretože Struts2 bol jednoducho výsledkom premenovania rámca WebWork 2.2 (t. J. Komunity WebWork a Struts, ktoré nejaký čas pracovali samostatne, aby nakoniec prišli so Struts2). Jeho súčasná stabilná verzia je verzia 2.2.3, ktorá bola vydaná v máji 2011.
Aký je rozdiel medzi Struts a Struts2?
Jedným z mnohých problémov rámca Struts bola potreba programovania na abstraktné triedy namiesto rozhraní. Toto bolo vyriešené rámcom Struts2. Napríklad rámec Struts vyžadoval rozšírenie triedy akcií z abstraktných základných tried, ale akcie Struts2 môžu implementovať rozhranie akcie. Kvôli rozdielom v modeli závitov medzi dvoma verziami sa problémy s bezpečnosťou vlákien, ktoré sa vyskytli v rámci Struts týkajúce sa objektov Action, v rámci Struts2 nevyskytujú. Dôvodom je to, že objekty Action Struts2 Action sa konkretizujú pre každú požiadavku, zatiaľ čo rámec Action in Struts framework má len jednu inštanciu na spracovanie všetkých požiadaviek na túto akciu. Na rozdiel od rámca Action in Struts nie sú akcie Struts2 závislé od rozhrania Servlet API.
Testovateľnosť Struts2 rámca je porovnateľne vyššia ako Struts framework. Akcie Struts2 môžete otestovať jednoducho podľa troch krokov: inštancia, nastavenie vlastností a vyvolanie metód. Zber vstupov je v rámci Struts2 ľahší, pretože vlastnosti Action sa používajú ako vstupné vlastnosti bez toho, aby ste museli držať druhý vstupný objekt. Okrem podpory integrácie JSTL (ktorá je prítomná v službe Struts), rámec Struts2 môže používať výkonnejší a výraznejší OGNL (Object Graph Notation Language). Pre prevod typu použite Strut a Strut2 Commons-Beanutils a OGNL. Kvôli týmto vylepšeniam je rámec Struts2 považovaný za vysoko vyspelý rámec a medzi programátormi Java EE je veľmi obľúbený. Na druhej strane rámec Struts sa teraz považuje za zastaraný.