Struts vs Struts2
Struts (ידוע גם בשם Apache Struts או Struts 1) היא מסגרת קוד פתוח חוצת פלטפורמות שנכתבה ב-Java, המיועדת לפיתוח יישומי אינטרנט של Java EE. זו הייתה אחת ממסגרות יישומי האינטרנט הראשוניות של Java EE. אבל כמה שנים מאוחר יותר, Struts2 (או Struts גרסה 2) הגיעה, וזו הייתה מסגרת שונה לחלוטין ומשופרת מאוד של יישום אינטרנט. הוא טיפל בכמה נושאים שנתפסו כליקויים בגרסה הראשונית. כעת, נעשה שימוש רב ב-Struts2 לפיתוח יישומי Java EE בעולם.
מה זה Struts?
Struts (Struts 1) framework הייתה אחת ממסגרות יישומי האינטרנט הראשוניות לפיתוח יישומי אינטרנט של Java EE.מסגרת Struts מעודדת את השימוש בארכיטקטורת MVC (Model-View-Controller). זוהי הרחבה של Java Servlet API. קרייג מקלנהאן הוא היוצר המקורי של Struts. בתחילה זה היה ידוע בשם Jakaratha Struts ונוחזק תחת פרויקט ג'קרטה של Apache Software Foundation. הוא שוחרר תחת Apache License 2.0. מסגרת Struts נקראת מסגרת מבוססת בקשה, והיא מורכבת משלושה מרכיבים עיקריים: מטפל בקשות, מטפל בתגובות וספריית תגים. URI סטנדרטי (זיהוי משאב אחיד) ממופה למטפל בבקשות. מטפל התגובה אחראי על העברת השליטה. כדי ליצור יישומים אינטראקטיביים עם טפסים, ניתן להשתמש בתכונות המוצעות על ידי ספריית התגים. תומכות תומכות ביישומי REST וטכנולוגיות שונות כמו SOAP, AJAX וכו'.
מה זה Struts2?
Struts framework נתפס כמכיל מגבלות מסוימות (בעיקר חוסר ההפרדה בין שכבת המצגת, שכבת הטיפול בבקשות והמודל) על ידי מפתחי Java EE באותה תקופה, וכתוצאה מכך כמה שנים מאוחר יותר הגיע Struts2.למעשה, Struts2 היה שונה לחלוטין מ-Struts. למעשה, הם אפילו לא חלקו את אותו בסיס קוד מכיוון ש-Struts2 היה פשוט תוצאה של שינוי שמה של המסגרת של WebWork 2.2 (כלומר קהילות WebWork ו-Struts שעבדו בנפרד במשך זמן מה, בסופו של דבר שילבו ידיים כדי להמציא את Struts2). המהדורה היציבה הנוכחית שלו היא גרסה 2.2.3, אשר שוחררה במאי, 2011.
מה ההבדל בין Struts ל-Struts2?
אחת הבעיות הרבות של Struts framework הייתה הצורך בתכנות למחלקות מופשטות במקום ממשקים. זה נפתר על ידי Struts2 framework. לדוגמה, מסגרת Struts דרשה כי מחלקות Action יורחבו ממחלקות הבסיס המופשטות, אך Struts2 Actions יכולה ליישם ממשק Action. עקב ההבדלים במודל השרשור בין שתי הגרסאות בעיות בטיחות שרשור שעלו במסגרת Struts לגבי אובייקטי Action לא מתרחשות במסגרת Struts2. הסיבה היא אובייקטים של Struts2 Action מופקים עבור כל בקשה, בעוד של-action in Struts framework יש רק מופע אחד לטיפול בכל הבקשות עבור אותה פעולה.בניגוד למסגרת Actions in Struts, Struts2 Actions אינן תלויות בממשק ה-API של Servlet.
הבדיקה של מסגרת Struts2 גבוהה יחסית ממסגרת Struts. אתה יכול לבדוק את Struts2 Actions פשוט בעקבות שלושת השלבים: מופע, הגדרת מאפיינים והפעלת שיטות. קל יותר לקצור קלט במסגרת Struts2 מכיוון שמאפייני פעולה משמשים כמאפייני קלט, ללא צורך לשמור אובייקט קלט שני. מלבד התמיכה באינטגרציה של JSTL (שקיימת ב-Struts), מסגרת Struts2 יכולה להשתמש ב- OGNL (Object Graph Notation Language) עוצמתי ואקספרסיבי יותר. להמרת סוג, Strut ו-Strut2 משתמשים ב-Commons-Beanutils ו- OGNL, בהתאמה. בגלל השיפורים הללו, Struts2 framework נחשבת למסגרת בוגרת מאוד והיא פופולרית מאוד בקרב מתכנתי Java EE. מצד שני, Struts framework נחשבת למיושנת כעת.