-
Struts، مثل Tomcat وTurbine والعديد من مشاريع Apache الأخرى، هي برامج مفتوحة المصدر، وهي إحدى مزاياها. السماح للمطورين بالحصول على فهم أعمق لآلية التنفيذ الداخلي الخاصة به. تم إنشاء إطار عمل Struts مفتوح المصدر ليسهل على المطورين إنشاء تطبيقات ويب تعتمد على تقنيات Java Servlet وJavaServer Pages (JSP). يوفر إطار عمل Struts للمطورين إطارًا قياسيًا موحدًا، باستخدام Struts كأساس، يمكن للمطورين التركيز بشكل أكبر على منطق الأعمال الخاص بالتطبيق. إطار عمل Struts نفسه عبارة عن تطبيق Model-View-Controller (MVC) باستخدام تقنية Java Servlet وJavaServer Pages.
على وجه التحديد، مزايا الدعامات هي:
1. تنفيذ نموذج MVC ببنية واضحة، مما يسمح للمطورين بالتركيز فقط على تنفيذ منطق الأعمال.
2. هناك مجموعة كبيرة من العلامات التي يمكن استخدامها. يمكن لمكتبة علامات Struts (Taglib) تحسين كفاءة التطوير بشكل كبير إذا كان من الممكن استخدامها بمرونة. بالإضافة إلى ذلك، فيما يتعلق بمطوري JSP المحليين، بالإضافة إلى استخدام العلامات الشائعة التي تأتي مع JSP، نادرًا ما يقومون بتطوير علاماتهم الخاصة، وربما تكون Struts نقطة انطلاق جيدة.
3. سيكون التنقل عبر الصفحة بمثابة اتجاه تطويري في المستقبل، وفي الواقع، سيؤدي القيام بذلك إلى جعل سياق النظام أكثر وضوحًا. من خلال ملف التكوين، يمكنك فهم الاتصال بين الأجزاء المختلفة للنظام بأكمله، وهو أمر مفيد جدًا للصيانة اللاحقة. تصبح هذه الميزة أكثر وضوحًا عندما تتولى مجموعة أخرى من المطورين المشروع.
4. توفير آلية التعامل مع الاستثناءات.
5. إدارة تجمع اتصال قاعدة البيانات
6. دعم I18N
عيب:
1. عند الانتقال إلى طبقة العرض، تحتاج إلى التهيئة للأمام في كل مرة تذهب فيها إلى طبقة العرض، أعتقد أن معظمها يذهب مباشرة إلى jsp jsps في طبقة العرض، تحتاج إلى تكوين Struts مرات، وهذا لا يشمل في بعض الأحيان تغييرات الدليل والملف، والتي تتطلب إعادة التعديل للأمام إعادة النشر، ويجب إعادة تشغيل خادم مثل Tomcate. إذا كانت تغييرات العمل معقدة ومتكررة، فإن هذه العملية تكون بسيطة بشكل لا يمكن تصوره. هذا هو الحال الآن، حيث يستخدم العشرات أو المئات من الأشخاص نظامنا عبر الإنترنت في نفس الوقت.
2. يجب أن يكون Struts Action آمنًا لسلسلة العمليات، مما يسمح لمثيل واحد فقط بمعالجة جميع الطلبات. لذلك، يجب أن تكون جميع الموارد المستخدمة من خلال الإجراءات متزامنة بشكل موحد، مما يسبب مشكلات تتعلق بسلامة سلسلة الرسائل.
3. الاختبار غير مريح. يقترن كل إجراء من إجراءات الدعامات بطبقة الويب، لذلك يعتمد اختباره على حاوية الويب، ومن الصعب أيضًا تنفيذ اختبار الوحدة. ومع ذلك، هناك أداة ملحقة Junit Struts TestCase يمكنها تنفيذ اختبار الوحدة الخاصة بها.
4. تحويل النوع. يتعامل FormBean الخاص بـ Struts مع جميع البيانات على أنها نوع سلسلة، ويمكنه استخدام الأداة Commons-Beanutils لتحويل النوع. لكن تحويله كله يكون على مستوى الفئة، ونوع التحويل غير قابل للتكوين. ومن الصعب جدًا أيضًا إرجاع رسائل الخطأ أثناء تحويل النوع إلى المستخدم.
5. الاعتماد الكبير على Servlet يجب أن يعتمد على ServletRequest وServletResponse عند معالجة الإجراء، لذلك لا يمكن التخلص من حاوية Servlet.
6. فيما يتعلق بلغة التعبير الأمامية، تدمج Struts JSTL، لذلك تستخدم بشكل أساسي لغة تعبير JSTL للحصول على البيانات. ومع ذلك، فإن لغة التعبير الخاصة بـ JSTL ضعيفة جدًا في التعامل مع خصائص المجموعة والفهرس.
7. من الصعب التحكم في تنفيذ الإجراء. عندما تقوم Struts بإنشاء إجراء، سيكون من الصعب جدًا التحكم في ترتيب تنفيذه. قد يتعين عليك أيضًا إعادة كتابة Servlet لتحقيق متطلباتك الوظيفية.
8. المعالجة قبل وبعد تنفيذ الإجراء. عندما تقوم Struts بمعالجة الإجراء، فإنها تعتمد على التسلسل الهرمي للفئات، ومن الصعب تنفيذ العمليات قبل وبعد معالجة الإجراء.
9. دعم غير كافٍ للأحداث. في Struts، يتوافق النموذج فعليًا مع فئة الإجراء (أو DispatchAction). بمعنى آخر: في Struts، يتوافق النموذج فعليًا مع حدث واحد فقط الحدث هو حدث بسيط مقارنة بالحدث المكون.
كائن النموذج المهم لـ Struts، ActionForm، هو كائن يمثل تطبيقًا، ويحتوي هذا الكائن على عدة حقول على الأقل، وهي حقول إدخال في نموذج صفحة Jsp يتم تحسين التفاصيل لهذه الحقول في النموذج، أي أنه عندما يتوافق حقل واحد مع حدث واحد، فمن المستحيل ببساطة استخدام Struts، بالطبع، يمكن تحقيق ذلك أيضًا من خلال الجمع بين JavaScript.
هذه المقالة مأخوذة من مدونة CSDN، يرجى الإشارة إلى المصدر عند إعادة الطباعة: http://blog.csdn.net/zhrl0000/archive/2009/12/17/5027947.aspx.
-