Struts vs Spring MVC
فریم ورک Struts یکی از فریم ورک های اولیه برنامه های وب برای توسعه برنامه های کاربردی وب Java EE است. Spring یک چارچوب برنامه متن باز است. مدتی پس از معرفی فریم ورک Spring، توسعه دهندگان یک فریم ورک MVC را به فریم ورک Spring اضافه کردند، به این امید که برخی از محدودیت هایی را که در Struts درک کرده بودند برطرف کنند. اما چند سال بعد، Struts2 (یا Struts نسخه 2) وارد شد، و چارچوب برنامه وب کاملاً متفاوت و بسیار بهبود یافته بود. اکنون، Struts و Spring MVC به شدت برای توسعه برنامههای Java EE در جهان استفاده میشوند.
Struts چیست؟
Struts (همچنین به عنوان Apache Struts شناخته می شود) یک چارچوب متن باز چند پلتفرمی است که به زبان جاوا نوشته شده است و برای توسعه برنامه های کاربردی وب Java EE در نظر گرفته شده است. Strut ها استفاده از معماری MVC (Model-View-Controller) را تشویق می کنند. این افزونه Java Servlet API است. کریگ مک کلانهان خالق اصلی Struts است. در ابتدا با نام Jakaratha Struts شناخته می شد و تحت پروژه جاکارتا بنیاد نرم افزار آپاچی نگهداری می شد. نسخه پایدار فعلی آن نسخه 2.2.3 است که در می 2011 منتشر شد. تحت مجوز آپاچی 2.0 منتشر شده است. چارچوب Struts یک چارچوب مبتنی بر درخواست نامیده می شود و از سه جزء اصلی تشکیل شده است: یک کنترل کننده درخواست، یک کنترل کننده پاسخ و یک کتابخانه برچسب. URI استاندارد (شناسه منبع یکسان) به یک کنترل کننده درخواست نگاشت می شود. کنترل کننده پاسخ مسئول انتقال کنترل است. برای ایجاد برنامه های تعاملی با فرم ها، می توان از ویژگی های ارائه شده توسط کتابخانه برچسب استفاده کرد. Struts از برنامه های REST و فناوری های مختلف مانند SOAP، AJAX و غیره پشتیبانی می کند.
Spring MVC چیست؟
Spring یک چارچوب برنامه منبع باز است. این توسط راد جانسون توسعه داده شد، و اولین نسخه در سال 2004 منتشر شد. Spring 3.0.5 نسخه فعلی چارچوب Spring است. تحت مجوز Apache 2.0 مجوز دارد. هر برنامه جاوا می تواند از ویژگی های اصلی فریم ورک Spring استفاده کند. چندین ماژول در فریم ورک Spring وجود دارد که 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 وجود دارد، فقط به دلیل کمبودهایی است که در نسخه 1 Struts یافت شد (که اکنون منسوخ شده است).