Struts vs Spring MVC
Struts ማዕቀፍ የጃቫ ኢኢ ድር መተግበሪያዎችን ለማዳበር ከመጀመሪያዎቹ የድር መተግበሪያ ማዕቀፎች አንዱ ነው። ፀደይ የክፍት ምንጭ መተግበሪያ ማዕቀፍ ነው። የስፕሪንግ ማእቀፍ ከገባ ከተወሰነ ጊዜ በኋላ ገንቢዎቹ በ Struts ውስጥ የተገነዘቡትን አንዳንድ ገደቦችን ለመፍታት ተስፋ በማድረግ የMVC ማዕቀፍ ወደ ስፕሪንግ ማዕቀፍ አክለዋል። ግን ከጥቂት አመታት በኋላ Struts2 (ወይም Struts ስሪት 2) መጣ፣ እና ሙሉ ለሙሉ የተለየ እና በጣም የተሻሻለ የድር መተግበሪያ ማዕቀፍ ነበር። አሁን፣ ሁለቱም Struts እና Spring MVC በአለም ላይ የጃቫ ኢኢ አፕሊኬሽኖችን ለመስራት በጣም በጥቅም ላይ ይውላሉ።
Sruts ምንድን ነው?
Struts (እንዲሁም Apache Struts በመባልም ይታወቃል) በጃቫ የተፃፈ የክፍት መድረክ ክፍት ምንጭ ማዕቀፍ ነው፣ እሱም የJava EE ድር መተግበሪያዎችን ለማዘጋጀት የታሰበ። Struts የMVC (ሞዴል-እይታ-ተቆጣጣሪ) አርክቴክቸርን መጠቀምን ያበረታታል። የJava Servlet API ቅጥያ ነው። ክሬግ ማክላናሃን የስትሮትስ የመጀመሪያ ፈጣሪ ነው። መጀመሪያ ላይ ጃካራታ ስትሩትስ በመባል ይታወቅ ነበር፣ እና በአፓቼ ሶፍትዌር ፋውንዴሽን ጃካርታ ፕሮጀክት ስር ይጠበቅ ነበር። አሁን ያለው የተረጋጋ የተለቀቀው ስሪት 2.2.3 ነው፣ እሱም በግንቦት፣ 2011 የተለቀቀው በ Apache License 2.0 ስር ነው። Struts ማዕቀፍ በጥያቄ ላይ የተመሰረተ ማዕቀፍ ተብሎ የሚጠራ ሲሆን በሶስት ዋና ዋና ክፍሎች የተዋቀረ ነው፡ የጥያቄ ተቆጣጣሪ፣ ምላሽ ሰጪ እና ታግ ቤተ መጻሕፍት። መደበኛ ዩአርአይ (ዩኒፎርም ሪሶርስ መለያ) በጥያቄ ተቆጣጣሪ ላይ ተቀርጿል። የምላሽ ተቆጣጣሪ ቁጥጥርን የማስተላለፍ ሃላፊነት አለበት። ከቅጾች ጋር በይነተገናኝ መተግበሪያዎችን ለመፍጠር በመለያ ቤተ-መጽሐፍት የቀረቡትን ባህሪያት መጠቀም ይቻላል። Struts የ REST መተግበሪያዎችን እና እንደ SOAP፣ AJAX፣ ወዘተ ያሉ የተለያዩ ቴክኖሎጂዎችን ይደግፋል።
ስፕሪንግ MVC ምንድን ነው?
ፀደይ የክፍት ምንጭ መተግበሪያ ማዕቀፍ ነው። የተሰራው በሮድ ጆንሰን ነው፣ እና የመጀመሪያው እትም በ2004 ተለቀቀ። ፀደይ 3.0.5 የአሁኑ የፀደይ ማዕቀፍ ስሪት ነው። በ Apache 2.0 ፍቃድ ስር ፍቃድ ተሰጥቶታል። ማንኛውም የጃቫ አፕሊኬሽን የስፕሪንግ ማዕቀፉን ዋና ባህሪያት መጠቀም ይችላል። በስፕሪንግ ማእቀፍ ውስጥ በርካታ ሞጁሎች አሉ, እና MVC ከእነዚህ ውስጥ አንዱ ነው. የፀደይ MVC ማዕቀፍ የመጀመሪያ እቅዳቸው አካል አልነበረም። እንደ እውነቱ ከሆነ የፀደይ ገንቢዎች የራሳቸውን MVC ማዕቀፍ ያወጡበት ምክንያት በ Struts (ስሪት 1) እና ሌሎች ተመሳሳይ ማዕቀፎች ውስጥ እንደ ጉድለቶች ያሳዩትን መፍትሄዎችን ለማቅረብ ነው። በተለይም በአቀራረብ ንብርብር ፣ በጥያቄ አያያዝ ንብርብር እና በአምሳያው መካከል ያለውን ልዩነት ለመፍታት እንደሚፈልጉ ተናግረዋል ። ጸደይ MVC በጥያቄ ላይ የተመሰረተ የድር መተግበሪያ ማዕቀፍ ነው።
በSruts እና Spring MVC መካከል ያለው ልዩነት ምንድን ነው?
ምንም እንኳን ስፕሪንግ MVC እና Struts ለጃቫ ኢኢ ዌብ አፕሊኬሽኖች ልማት የሚያገለግሉ ሁለት ታዋቂ የድር መተግበሪያ ማዕቀፎች ቢሆኑም ልዩነታቸው አላቸው።በእውነቱ፣ ስፕሪንግ ኤምቪሲ የተሰራው በስትሮትስ (ስሪት 1) ውስጥ ያሉ ጥቂት ውስንነቶችን ለመፍታት ነው። ነገር ግን Struts2 ከስሪት 1 በጣም የተሻሻለ ማዕቀፍ ነው (ተመሳሳይ የኮድ መሰረት እንኳን አይጋሩም) እና ስለዚህ፣ የፀደይ MVC እና Structs2 በጣም የሚነጻጸሩ ናቸው።
የSፕሪንግ ኤምቪሲ ዋነኛ ጥቅሞች አንዱ እንደ JSP/JSTL፣ Tiles፣ FreeMaker፣ Excel፣ PDF እና JSON ካሉ ብዙ የእይታ አማራጮች ጋር መቀላቀል መቻሉ ነው። ነገር ግን ከStruts በተቃራኒ ስፕሪንግ MVC አብሮ የተሰራ የAJAX ድጋፍ አይሰጥም (የሶስተኛ ወገን AJAX ቤተ-መጽሐፍትን መጠቀም ያስፈልጋል)።
በመጨረሻ፣ ሁለቱም በጣም የበሰሉ ማዕቀፎች ተደርገው ይወሰዳሉ፣ እና ከሁለቱ መካከል መምረጥ በግል ምርጫው ላይ ይወርዳል። እዚህ ላይ ልብ ልንል የሚገባን ነገር ቢኖር በስትሮዎች ላይ አሉታዊ ስሜቶች ካሉ፣ በ Struts ስሪት 1 (አሁን ጊዜ ያለፈበት ነው ተብሎ የሚታሰበው) በተገኙ ጉድለቶች ምክንያት ብቻ ነው።