ورود

View Full Version : مقایسه ای بین فریمورک های Spring و Struts



ermia2008
چهارشنبه 13 مرداد 1389, 14:14 عصر
سلام خدمت همه دوستان

می خواستم اگه ممکنه تفاوت های فریمورکهای Spring و Struts رو بگید و اینکه اصلا هدف هر کدوم از این فریمورکها چی هست ؟
ممنون

cups_of_java
چهارشنبه 13 مرداد 1389, 22:32 عصر
این دو فریم ورک اساسن هدف های متفاوتی دارن.
استراتس (یا اشتراتس) یک فریم ورک قدیمیه MVC برای نوشتن برنامه های تحت وب جاوا هست.
اما
اسپرینگ یک فریم ورک به مراتب جوان تر، و یک استک کامل از سرویس ها و الگوهایی هست که برای نوشتن برنامه های سازمانی جاوا مورد نیاز هستند. این الگو ها و سرویس ها بطور مشخص IOC, Dependency Injection, MVC, Transactions, Security, Persistance و... هستند. و این خیلی فراتر از نیاز های برنامه های تحت وب می تونه باشه. به این شکل، فریم ورک اسپرینگ یک محیط مدیریت شده برای برنامه های جاوای شما فراهم می کنه و از این جهت قابل مقایسه با Application Containerها هست.
بنابراین شاید بهتر باشه استراتس رو با معادل خودش یعنی Spring MVC مقایسه کرد.
و اسپرینگ رو میشه یک فریم ورک به موازات Java EE دونست هرچند کوچکتر از اون و غیر استاندارد تر (البته اگه استاندارد های de facto رو کمتر از JSRها بدونیم) ولی اسپرینگ امکان اتصال به هر استانداردی تحت Java EE رو داره.

برای جزییات بیشتر بهتره که وب رو جستجو کنید و به مطالعه مقاله های موجود در این زمینه بشینید.

ermia2008
جمعه 15 مرداد 1389, 00:13 صبح
این دو فریم ورک اساسن هدف های متفاوتی دارن.
استراتس (یا اشتراتس) یک فریم ورک قدیمیه MVC برای نوشتن برنامه های تحت وب جاوا هست.
اما
اسپرینگ یک فریم ورک به مراتب جوان تر، و یک استک کامل از سرویس ها و الگوهایی هست که برای نوشتن برنامه های سازمانی جاوا مورد نیاز هستند. این الگو ها و سرویس ها بطور مشخص IOC, Dependency Injection, MVC, Transactions, Security, Persistance و... هستند. و این خیلی فراتر از نیاز های برنامه های تحت وب می تونه باشه. به این شکل، فریم ورک اسپرینگ یک محیط مدیریت شده برای برنامه های جاوای شما فراهم می کنه و از این جهت قابل مقایسه با Application Containerها هست.
بنابراین شاید بهتر باشه استراتس رو با معادل خودش یعنی Spring MVC مقایسه کرد.
و اسپرینگ رو میشه یک فریم ورک به موازات Java EE دونست هرچند کوچکتر از اون و غیر استاندارد تر (البته اگه استاندارد های de facto رو کمتر از JSRها بدونیم) ولی اسپرینگ امکان اتصال به هر استانداردی تحت Java EE رو داره.

برای جزییات بیشتر بهتره که وب رو جستجو کنید و به مطالعه مقاله های موجود در این زمینه بشینید.

ممنون از پاسختون
یعنی اینجور میشه برداشت کرد که تمام کارهایی که توسط Struts انجام میگرفته الان توسط Spring هم قابل انجام هست؟ درسته؟
اگه اینطوره پس چرا خیلی از شرکت ها هنوز از Struts استفاده میکنند و به سمت Spring نمیرن؟

cups_of_java
جمعه 15 مرداد 1389, 00:46 صبح
تمام کارهایی که توسط Struts انجام میگرفته الان توسط Spring هم قابل انجام هست؟ درسته؟
اگه منظورتون اینه که میشه با اسپرینگ با معماری MVC برنامه تحت وب نوشت، بله! البته هر فریم ورک چارچوب خاص خودش رو در اختیار برنامه نویس قرار می ده ولی همه می خوان مسائلی شبیه رو حل کنند.


پس چرا خیلی از شرکت ها هنوز از Struts استفاده میکنند و به سمت Spring نمیرن؟
از خودشون بپرسید! این به شرایط می تونه بستگی داشته باشه! شما برای اینکه یک هندونه رو بلند کنی که چرثقیل نمیاری! استراتس از اول هم (با همه مشکلاتی که در پیاده سازی MVC داشت) محبوب بود! چون ساده بود، جمع و جور بود، ... برای نوشتن یک برنامه وب خیلی جا افتاده بود بین برنامه نویسای جاوا!
اما بازم میگم دنبال یک راه حل برای حل مسئله نباشید. همه این راه حل ها مسئله رو درست حل می کنند! فقط هر کدوم به روشی...! و البته این شرایط هست که روش ها رو نسبت به همدیگه مورد مقایسه قرار میده.