Struts vs Spring MVC
Struts framework нь Java EE вэб программуудыг хөгжүүлэх анхны вэб программуудын нэг юм. Spring бол нээлттэй эхийн хэрэглээний хүрээ юм. Spring framework-ийг нэвтрүүлснээс хойш хэсэг хугацааны дараа хөгжүүлэгчид Struts-д олж мэдсэн зарим хязгаарлалтыг арилгах гэж найдаж, Spring framework-д MVC хүрээг нэмсэн. Гэвч хэдэн жилийн дараа Struts2 (эсвэл Struts хувилбар 2) ирсэн бөгөөд энэ нь огт өөр бөгөөд маш сайжруулсан вэб програмын хүрээ байв. Одоо Struts болон Spring MVC хоёулаа дэлхий даяар Java EE програмуудыг хөгжүүлэхэд маш их ашиглагдаж байна.
Struts гэж юу вэ?
Struts (мөн Apache Struts гэгддэг) нь Java хэл дээр бичигдсэн, Java EE вэб программуудыг хөгжүүлэхэд зориулагдсан платформ хоорондын нээлттэй эхийн хүрээ юм. Struts нь MVC (Model-View-Controller) архитектурыг ашиглахыг дэмждэг. Энэ нь Java Servlet API-ийн өргөтгөл юм. Крейг МакКланахан бол Struts-ийн анхны үүсгэн байгуулагч юм. Эхэндээ Жакарта Струтс гэж нэрлэгддэг байсан бөгөөд Apache Software Foundation-ийн Жакарта төслийн хүрээнд хадгалагдаж байсан. Одоогийн тогтвортой хувилбар нь 2011 оны 5-р сард гарсан 2.2.3 хувилбар юм. Энэ нь 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-р хувилбарт (одоо хуучирсан гэж тооцогддог) дутагдлуудаас үүдэлтэй гэдгийг энд тэмдэглэх нь зүйтэй.