Struts vs Spring MVC
Struts Framework-ը Java EE վեբ հավելվածների մշակման սկզբնական վեբ հավելվածներից մեկն է: Spring-ը բաց կոդով հավելվածի շրջանակ է: Spring Framework-ի ներդրումից որոշ ժամանակ անց ծրագրավորողները Spring Framework-ին ավելացրին MVC շրջանակ՝ հուսալով լուծել Struts-ում իրենց ընկալած որոշ սահմանափակումներ: Բայց մի քանի տարի անց Struts2-ը (կամ Struts տարբերակը 2) եկավ, և դա բոլորովին այլ էր և շատ բարելավված վեբ հավելվածի շրջանակը: Այժմ և՛ Struts, և՛ Spring MVC-ն շատ են օգտագործվում աշխարհում Java EE հավելվածների մշակման համար:
Ինչ է Struts?
Struts-ը (հայտնի է նաև որպես Apache Struts) Java-ով գրված միջպլատֆորմային բաց կոդով շրջանակ է, որը նախատեսված է Java EE վեբ հավելվածների մշակման համար։ Struts-ը խրախուսում է MVC (Model-View-Controller) ճարտարապետության օգտագործումը: Այն Java Servlet API-ի ընդլայնումն է: Craig McClanahan-ը Struts-ի սկզբնական ստեղծողն է: Սկզբում այն հայտնի էր որպես Jakaratha Struts և պահպանվում էր Apache Software Foundation-ի Ջակարտայի նախագծի շրջանակներում: Դրա ներկայիս կայուն թողարկումը 2.2.3 տարբերակն է, որը թողարկվել է 2011թ. մայիսին: Այն թողարկվել է Apache License 2.0-ով: Struts-ի շրջանակը կոչվում է հարցումների վրա հիմնված շրջանակ, և այն բաղկացած է երեք հիմնական բաղադրիչներից՝ հարցումների մշակող, պատասխանի մշակող և պիտակների գրադարան: Ստանդարտ URI (միասնական ռեսուրսների նույնացուցիչ) քարտեզագրվում է հարցումների մշակողի հետ: Պատասխանների մշակողը պատասխանատու է վերահսկողության փոխանցման համար: Ձևաթղթերով ինտերակտիվ հավելվածներ ստեղծելու համար կարող են օգտագործվել պիտակների գրադարանի կողմից առաջարկվող հնարավորությունները: Struts-ն աջակցում է REST հավելվածներին և տարբեր տեխնոլոգիաներին, ինչպիսիք են SOAP, AJAX և այլն:
Ինչ է Spring MVC?
Spring-ը բաց կոդով հավելվածի շրջանակ է: Այն մշակվել է Ռոդ Ջոնսոնի կողմից, և առաջին տարբերակը թողարկվել է 2004 թվականին: Spring 3.0.5-ը Spring Framework-ի ընթացիկ տարբերակն է: Այն լիցենզավորված է Apache 2.0 լիցենզիայի ներքո: Ցանկացած Java հավելված կարող է օգտագործել Spring Framework-ի հիմնական հատկանիշները: Spring Framework-ում կան մի քանի մոդուլներ, և MVC-ն դրանցից մեկն է: Spring MVC շրջանակը նրանց սկզբնական պլանի մի մասը չէր: Իրականում, պատճառը, որ Spring ծրագրավորողները եկան իրենց սեփական MVC շրջանակը, լուծումներ տալն էր այն, ինչ նրանք ցույց տվեցին որպես թերություններ Struts-ում (տարբերակ 1) և այլ նմանատիպ շրջանակներում: Մասնավորապես, նրանք ասացին, որ ցանկանում են լուծել ներկայացման շերտի, հարցումների մշակման շերտի և մոդելի միջև տարանջատման բացակայությունը: Spring MVC-ն նաև հարցումների վրա հիմնված վեբ հավելվածի շրջանակ է:
Ո՞րն է տարբերությունը Struts-ի և Spring MVC-ի միջև:
Չնայած Spring MVC-ն և Struts-ը երկու հայտնի վեբ հավելվածների շրջանակներ են, որոնք օգտագործվում են Java EE վեբ հավելվածների մշակման համար, դրանք ունեն իրենց տարբերությունները:Իրականում Spring MVC-ն ստեղծվել է Struts-ի մի քանի սահմանափակումների լուծման համար (տարբերակ 1): Բայց Struts2-ը շատ բարելավված շրջանակ է, քան տարբերակը 1-ը (նրանք նույնիսկ չեն կիսում նույն կոդային բազան), և, հետևաբար, Spring MVC-ն և Structs2-ը շատ համադրելի են:
Spring MVC-ի հիմնական առավելություններից մեկն այն է, որ հնարավոր է անխափան ինտեգրում դիտման բազմաթիվ տարբերակների հետ, ինչպիսիք են JSP/JSTL, Tiles, FreeMaker, Excel, PDF և JSON: Բայց, ի տարբերություն Struts-ի, Spring MVC-ն չի տրամադրում ներկառուցված AJAX աջակցություն (անհրաժեշտ է օգտագործել երրորդ կողմի AJAX գրադարան):
Ի վերջո, երկուսն էլ համարվում են շատ հասուն շրջանակներ, և երկուսի միջև ընտրությունը կախված է անձնական նախապատվությունից: Կարևոր է նշել այստեղ, որ եթե կան որևէ բացասական զգացողություններ struts-ի նկատմամբ, ապա դրանք պայմանավորված են միայն այն թերություններով, որոնք հայտնաբերվել են Struts 1 տարբերակում (որն այժմ համարվում է հնացած):