Struts vs Spring MVC
Mfumo wa Struts ni mojawapo ya mifumo ya awali ya programu ya wavuti ya kutengeneza programu za wavuti za Java EE. Spring ni mfumo wa programu huria. Muda fulani baada ya kuanzishwa kwa mfumo wa Majira ya kuchipua, wasanidi programu waliongeza mfumo wa MVC kwenye mfumo wa Majira ya kuchipua, wakitarajia kushughulikia baadhi ya mapungufu waliyoona katika Struts. Lakini miaka michache baadaye, Struts2 (au toleo la Struts 2) ilifika, na ilikuwa tofauti kabisa na mfumo wa utumizi wa wavuti ulioboreshwa sana. Sasa, Struts na Spring MVC zinatumika kwa kiasi kikubwa sana kutengeneza programu za Java EE duniani.
Struts ni nini?
Struts (pia inajulikana kama Apache Struts) ni mfumo wa chanzo huria wa majukwaa mtambuka ulioandikwa katika Java, ambao unakusudiwa kutengeneza programu za wavuti za Java EE. Struts inahimiza utumiaji wa usanifu wa MVC (Model-View-Controller). Ni kiendelezi cha Java Servlet API. Craig McClanahan ndiye muundaji asili wa Struts. Hapo awali ilijulikana kama Jakaratha Struts, na ilidumishwa chini ya Mradi wa Jakarta wa Apache Software Foundation. Toleo lake la sasa ni la 2.2.3, ambalo lilitolewa Mei, 2011. Imetolewa chini ya Apache License 2.0. Mfumo wa Struts unaitwa mfumo wa msingi wa ombi, na unaundwa na sehemu kuu tatu: kidhibiti cha ombi, kidhibiti cha majibu, na maktaba ya lebo. URI ya kawaida (Kitambulisho cha Rasilimali Sawa) imechorwa kwenye kidhibiti cha ombi. Kidhibiti cha majibu kina jukumu la kuhamisha udhibiti. Ili kuunda programu zinazoingiliana na fomu, vipengele vinavyotolewa na maktaba ya lebo vinaweza kutumika. Struts inasaidia maombi ya REST na teknolojia mbalimbali kama vile SOAP, AJAX, nk.
Spring MVC ni nini?
Spring ni mfumo wa programu huria. Ilianzishwa na Rod Johnson, na toleo la kwanza lilitolewa mwaka wa 2004. Spring 3.0.5 ni toleo la sasa la mfumo wa Spring. Imepewa leseni chini ya leseni ya Apache 2.0. Programu yoyote ya Java inaweza kutumia vipengele vya msingi vya mfumo wa Spring. Kuna moduli kadhaa katika mfumo wa Spring, na MVC ni mmoja wao. Mfumo wa Spring MVC haukuwa sehemu ya mpango wao wa asili. Kwa hakika, sababu ambayo watengenezaji wa Spring walikuja na mfumo wao wenyewe wa MVC ilikuwa kutoa suluhu kwa yale waliyoonyesha kama mapungufu katika Struts (toleo la 1) na mifumo mingine kama hiyo. Hasa, walisema walitaka kushughulikia ukosefu wa utengano kati ya safu ya uwasilishaji, safu ya kushughulikia ombi, na mfano. Spring MVC pia ni mfumo wa maombi ya wavuti unaotegemea ombi.
Kuna tofauti gani kati ya Struts na Spring MVC?
Ingawa Spring MVC na Struts ni mifumo miwili maarufu ya programu ya wavuti inayotumika kutengeneza programu za wavuti za Java EE, zina tofauti zake. Kwa kweli, Spring MVC iliundwa ili kushughulikia mapungufu machache katika Struts (toleo la 1). Lakini Struts2 ni mfumo ulioboreshwa zaidi kuliko toleo la 1 (hata hawashiriki msingi sawa wa msimbo), na kwa hivyo, Spring MVC na Structs2 zinaweza kulinganishwa sana.
Moja ya faida kuu za Spring MVC ni kwamba inawezekana kuwa na muunganisho usio na mshono na chaguo nyingi za kutazama kama vile JSP/JSTL, Tiles, FreeMaker, Excel, PDF na JSON. Lakini, tofauti na Struts, Spring MVC haitoi usaidizi wa ndani wa AJAX (unahitaji kutumia maktaba ya AJAX ya wahusika wengine).
Hatimaye, zote mbili zinachukuliwa kuwa mifumo iliyokomaa sana, na kuchagua kati ya hizo mbili kunategemea mapendeleo ya kibinafsi. Ni muhimu kutambua hapa kwamba ikiwa kuna hisia hasi dhidi ya wapenzi, ni kwa sababu tu ya mapungufu ambayo yalipatikana katika toleo la 1 la Struts (ambalo sasa linachukuliwa kuwa la kizamani).