Struts נגד Spring MVC
Struts framework היא אחת ממסגרות יישומי האינטרנט הראשוניות לפיתוח יישומי אינטרנט של Java EE. Spring היא מסגרת יישומי קוד פתוח. זמן מה לאחר הצגת ה-Spring framework, המפתחים הוסיפו מסגרת MVC ל-Spring, בתקווה לטפל בחלק מהמגבלות שהם תפסו ב-Struts. אבל כמה שנים מאוחר יותר, Struts2 (או Struts גרסה 2) הגיעה, וזו הייתה מסגרת שונה לחלוטין ומשופרת מאוד. כעת, גם Struts וגם Spring MVC נמצאים בשימוש כבד מאוד לפיתוח יישומי Java EE בעולם.
מה זה Struts?
Struts (ידוע גם בשם Apache Struts) היא מסגרת קוד פתוח חוצת פלטפורמות שנכתבה ב-Java, המיועדת לפיתוח יישומי אינטרנט של Java EE. תמוכות מעודדות את השימוש בארכיטקטורת MVC (Model-View-Controller). זוהי הרחבה של Java Servlet API. קרייג מקלנהאן הוא היוצר המקורי של Struts. בתחילה זה היה ידוע בשם Jakaratha Struts, ונשמר תחת פרויקט ג'קרטה של Apache Software Foundation. המהדורה היציבה הנוכחית שלו היא גרסה 2.2.3, אשר שוחררה במאי, 2011. היא שוחררה תחת Apache License 2.0. מסגרת Struts נקראת מסגרת מבוססת בקשה, והיא מורכבת משלושה מרכיבים עיקריים: מטפל בקשות, מטפל בתגובות וספריית תגים. URI סטנדרטי (זיהוי משאב אחיד) ממופה למטפל בבקשות. מטפל התגובה אחראי על העברת השליטה. כדי ליצור יישומים אינטראקטיביים עם טפסים, ניתן להשתמש בתכונות המוצעות על ידי ספריית התגים. תומכות תומכות ביישומי REST וטכנולוגיות שונות כמו SOAP, AJAX וכו'.
מה זה Spring MVC?
Spring היא מסגרת יישום קוד פתוח. הוא פותח על ידי Rod Johnson,, והגרסה הראשונה שוחררה בשנת 2004. Spring 3.0.5 היא הגרסה הנוכחית של ה-Spring framework. זה מורשה תחת רישיון Apache 2.0. כל יישום Java יכול להשתמש בתכונות הליבה של מסגרת 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 (שנחשבת כיום למיושנת).