15 سؤالاً يجب معرفته في مقابلة Spring MVC

نشرت: 2018-03-25

أصبح Spring أحد أكثر أطر عمل Java استخدامًا لتطوير تطبيقات الويب. جميع تطبيقات Java الجديدة تستخدم بشكل افتراضي أطر Spring core و Spring MVC. بفضل شعبيتها المتزايدة ، يبحث القائمون بالتوظيف في جميع أنحاء العالم عن مرشحين عمليًا مع إطار الربيع. إذا كنت ستظهر لمقابلة لوظيفة مطور Java ، فإن Spring MVC هو أحد الأشياء الأولى التي يجب عليك صقل معرفتك بها حول أسئلة مقابلة إطار الربيع - بغض النظر عما إذا كنت حديث العهد أو شخصًا لديه خبرة.

بعد كل شيء ، فإن إطار عمل Spring MVC هو أكثر أطر عمل Java استخدامًا ، ولا بد لك من تلقي الأسئلة المطروحة في نفس الوقت وفي نفس الوقت تقريبًا ، في أي مقابلة Java (أو أي مقابلة ذات صلة) تجلس من أجلها. إذا لم تكن تعرف ، فإن Spring MVC هو إطار عمل قوي قائم على Java يساعد في إنشاء تطبيقات الويب. كما يوحي الاسم ، فإنه يستخدم بنية MVC - نموذج ، عرض ، وحدة تحكم. يوفر Spring MVC طريقة أنيقة لاستخدام الزنبرك مع إطار MVC. تم إصدار إطار الربيع في عام 2002 ، وهو إطار مفتوح المصدر ، مما يعني أنه يمكن للمطورين في جميع أنحاء العالم المساهمة في تطوير وإصدارات أخرى من إطار العمل.

تعلم كيفية إنشاء تطبيقات مثل Swiggy و Quora و IMDB والمزيد

هذا يعني أيضًا أن هناك مجتمعًا نشطًا دائمًا من المطورين لمساعدتك في استفساراتك. يضيف كونك مفتوح المصدر أيضًا إلى عدد كبير من الفوائد التي يقدمها إطار الربيع. خاصة إذا كنت تبدأ حياتك المهنية في Java ، فستحتاج إلى إرشادات ، ويضمن مجتمع مطوري Java المتنوع أنك لا تفتقر إلى أي إرشادات عندما يتعلق الأمر بالعمل مع Spring MVC.

مع وجود العديد من المزايا التي نقدمها ، لا ينبغي أن يكون هناك ذرة من الشك حول سبب كون Spring MVC الموضوع المفضل للمقابلة لاستجوابك حوله.

في هذه المقالة ، سنتحدث عن 15 سؤالًا يجب أن تعرفه عن Spring MVC والتي يمكنك توقع مواجهتها في أي مقابلة تجلس من أجلها.

1. ما هو إطار الربيع؟

Spring هو إطار عمل مفتوح المصدر تم إنشاؤه لتبسيط تطوير التطبيقات. يحتوي على هيكل متعدد الطبقات يسمح للمطور بأن يكون انتقائيًا بشأن المكونات التي يستخدمها. يحتوي على ثلاثة مكونات رئيسية - Spring Core و Spring AOP و Spring MVC.

علاوة على ذلك ، يمكنك التحدث عن تجربتك مع الربيع ، إن وجدت. سيضيف ذلك الكثير من الوزن إلى إجابتك.

لماذا تتطلع الشركات إلى توظيف مطوري Full Stack

2. ما هي السمات الرئيسية لإطار الربيع؟

يوفر إطار الربيع الكثير من الميزات لجعل حياة المطور سهلة. ومنهم:

  • خفيف الوزن: الربيع خفيف الوزن للغاية ، الإصدار الأساسي حوالي 1 ميغا بايت ، مع تكاليف معالجة لا تذكر.
  • عكس التحكم (IoC): يعد حقن التبعية أو عكس التحكم أحد أهم ميزات الربيع. باستخدام IoC ، لا يحتاج المطورون إلى إنشاء بيئة كاملة للكائن وتبعياته ؛ يمكنهم ببساطة إنشاء واختبار الكائن الذي يتعاملون معه في وقت معين. سيتم تضمين تبعيات الكائن أو استدعائها عند الحاجة.
  • البرمجة الموجهة نحو الجانب: Spring يدعم البرمجة الموجهة نحو الجانب. يعزل AOP الوظائف الثانوية عن منطق عمل المبرمج. هذا لا يوفر نمطية فحسب ، بل يجعل الكود قابلاً للصيانة أيضًا.
  • هندسة MVC: يأتي Spring مع إطار عمل MVC لتطبيقات الويب. هذا الإطار قابل للتكوين بدرجة عالية باستخدام تقنيات مختلفة مثل JSP و Tiles و iText و POI.
  • معالجة استثناء JDBC: يأتي Spring مع طبقة تجريد JDBC محددة مسبقًا والتي تبسط عملية معالجة الاستثناءات الإجمالية.

3. اشرح أكثر قليلاً عن حقن التبعية.

يهدف Inversion of Control أو Dependency Injection إلى تبسيط عملية إنشاء الكائن باتباع مفهوم بسيط - لا تنشئ كائنات ، فقط صِف كيفية إنشائها. باستخدام IoC ، يتم إعطاء الكائنات تبعياتها في وقت البناء بواسطة كيان خارجي مسؤول عن تنسيق كل كائن في النظام. في الأساس ، نقوم بحقن التبعيات في الكائنات باستخدام IOC أو حقن التبعية.

4. اشرح الأنواع المختلفة لحقن التبعية في الربيع؟ متى تستخدم أي؟

يوفر Spring للمطورين النوعين التاليين من حقن التبعية:

  • DI القائم على المُنشئ: يتم إنجاز DI القائم على المُنشئ عن طريق تمرير عدد من الوسيطات (يمثل كل منها اعتمادًا على فئة أخرى) إلى مُنشئ الفصل. ببساطة ، تُعطى التبعيات في شكل معلمات المُنشئ.
  • DI القائم على الواصف: عندما تعمل مع مُنشئ بدون وسيطة ، ستقوم بتعيين القيم عن طريق تمرير الوسيطات من خلال وظيفة setter لإنشاء مثيل الفول قيد الدراسة ، وهذا ما يسمى بحقن التبعية القائم على الواصف.

متى ستستخدم أيًا من هؤلاء ، يتلخص في متطلباتك. ومع ذلك ، يوصى باستخدام DI القائم على Setter للتبعيات الاختيارية و DI القائم على المُنشئ للتبعيات الإلزامية.
مقابلة مع فاروق آدم ، الشريك المؤسس ، Fynd

5. ما هو إطار الربيع MVC؟

Spring MVC هو أحد المكونات الأساسية لهيكل الربيع. يأتي مزودًا بمكونات وعناصر جاهزة للاستخدام تساعد المطورين على بناء تطبيقات ويب مرنة وقوية. كما يوحي الاسم ، تفصل بنية MVC بين الجوانب المختلفة للتطبيق - منطق الإدخال ومنطق العمل ومنطق واجهة المستخدم. كما يوفر اقترانًا سائبًا بين M و V و C للتطبيق.

6. ما هي بعض فوائد إطار الربيع MVC على أطر MVC الأخرى؟

يتمتع إطار Spring MVC ببعض الفوائد الواضحة على الأطر الأخرى. بعض الفوائد هي:

    • فصل واضح للأدوار - هناك كائن متخصص لكل دور ، وبالتالي توفير فصل واضح للأدوار.
    • رمز عمل قابل لإعادة الاستخدام - مع Spring MVC ، لن تحتاج إلى تكرار الرمز الخاص بك. يمكنك استخدام كائناتك الحالية كأوامر بدلاً من عكسها لتوسيع فئة أساسية معينة لإطار العمل.
    • تخصيص الربط والتحقق
    • لغة قابلة للتخصيص ودقة موضوع
    • معالج قابل للتخصيص رسم الخرائط وعرض القرار
  • من Spring 2.0 فصاعدًا ، يأتي إطار العمل مزودًا بمكتبة علامات نموذج JSP مما يجعل كتابة النماذج في صفحات JSP أسهل بكثير.

7. ما هو ديسباتشر سيرفليت؟

إن إطار عمل Spring MVC يحركه الطلب وهو مصمم حول Servlet مركزي يتعامل مع جميع طلبات واستجابات HTTP. ومع ذلك ، فإن The DispatcherServlet يفعل أكثر من ذلك بكثير. يتكامل بسلاسة مع حاوية IoC ويسمح لك باستخدام كل ميزة من ميزات Spring.
عند تلقي طلب HTTP ، يستشير DispatcherServlet HandlerMapping (هذه هي ملفات التكوين) لاستدعاء وحدة التحكم المناسبة. بعد ذلك ، تستدعي وحدة التحكم طرق الخدمة المناسبة لتعيين بيانات النموذج. تقوم أيضًا بإرجاع اسم العرض إلى DispatcherServlet. DispatcherServlet ، بمساعدة ViewResolver ، تلتقط العرض المحدد للطلب. بمجرد الانتهاء من العرض ، يقوم DispatcherServlet بتمرير بيانات النموذج إلى طريقة العرض - حيث يتم عرضها أخيرًا على المستعرض.
ما هو التطوير القائم على الاختبار: دليل المبتدئين

8. ما هي فئة جهاز التحكم الأمامي Spring MVC؟

وحدة التحكم الأمامية هي وحدة تحكم تتعامل مع جميع الطلبات الخاصة بتطبيق الويب. عندما يتعلق الأمر بـ Spring MVC ، فإن DispatcherServlet هي وحدة التحكم الأمامية. عندما يتم إرسال طلب ويب إلى تطبيق Spring MVC ، فإن DIspatcherServlet يعتني بكل شيء. أولاً ، يأخذ الطلب. بعد ذلك ، ينظم المكونات المختلفة مثل معالجات الطلبات ، وأجهزة التحكم ، ومحللات العرض ، وما إلى ذلك - وكلها ضرورية للتعامل مع الطلب. وأخيرًا ، يعرض المحتوى على المتصفح.

9. ما هو نمط Viewresolver وكيف يعمل في MVC؟

عرض Resolver هو نمط J2EE الذي يسمح للتطبيقات باختيار التكنولوجيا ديناميكيًا لعرض البيانات على المتصفح (عرض). يمكن استخدام أي تقنية مثل HTML أو JSP أو Tapestry أو XSLT أو JSF أو أي تقنية أخرى من هذا القبيل للعرض. يحتفظ نمط View Resolver بتعيين طرق عرض مختلفة. تقوم وحدة التحكم بإرجاع اسم العرض الذي يتم تمريره بعد ذلك إلى View Resolver لتحديد التقنية المناسبة.

10. كيف يوفر Spring MVC دعم التحقق؟

يدعم الربيع نوعين من التحقق بشكل أساسي:

  • استخدام التعليقات التوضيحية JSR-303 وأي تطبيق مرجعي ، على سبيل المثال ، Hibernate Validator ، أو
  • تنفيذ واجهة org.springframework.validation.Validator.

11. يتلقى المستخدم خطأ في التحقق من الصحة في الحقول الأخرى عند تحديد خانة اختيار ، وبعد ذلك ، يقوم بإلغاء تحديده. ماذا ستكون حالة التحديد الحالية في كائن القيادة لـ Spring MVC؟ كيف ستصلح هذه المشكلة؟

هذا من أصعب الأسئلة التي يجب الإجابة عليها إذا لم تكن على دراية بسلوك HTTP Post في Spring MVC.
أثناء HTTP Post ، إذا قمت بإلغاء تحديد خانة الاختيار ، فلن يتضمن HTTP معلمة طلب لمربع الاختيار - مما يعني أن التحديد المحدث لن يتم انتقاؤه. لإصلاح ذلك ، يمكنك استخدام حقل النموذج المخفي الذي يبدأ بـ "_".
كيف تنجح في وظيفتك الأولى في تطوير البرمجيات

12. كيف ستقارن إطار عمل MVC بالبنية ثلاثية المستويات؟

العمارة ثلاثية المستويات هي نمط معماري بينما MVC هو نمط تصميم.
3 طبقات معمارية مع جزء mvc
بعد قولي هذا ، في التطبيقات الأكبر ، يشكل MVC طبقة العرض لهيكل ثلاثي المستويات. لا يهتم النموذج والعرض والتحكم إلا بالعرض التقديمي - فهم يستخدمون الطبقة الوسطى لملء نماذجهم.

13. كيف يجب أن نستخدم JDBC في الربيع لتحسين الأداء؟

يوفر Spring فئة قالب تسمى JDBCTemplate . إن استخدام JDBC مع هذا القالب يعطي المشعبات أداءً أفضل.

14. ماذا تقصد ب "فول" في سياق إطار الربيع؟

تُعرف أي فئة تمت تهيئتها بواسطة حاوية IoC باسم حبة في الربيع. تتم إدارة دورة حياة Spring Bean بواسطة Spring IoC Container.

15. ما هو "النطاق" في إشارة إلى فاصوليا الربيع؟

تأتي Spring Beans مع النطاقات الخمسة التالية:

    • النموذج الأولي : عندما يكون هناك طلب للحبوب ، يتم إنشاء نموذج أولي منفصل في كل مرة.
    • الطلب : يشبه النطاق السابق ، ولكن فقط للتطبيقات المستندة إلى الويب. لكل طلب HTTP ، يُنشئ Spring مثيلاً جديدًا لوحدة البرامج.
    • Singleton : هناك حبة واحدة تم إنشاؤها لكل حاوية ، وهي تعمل كنطاق افتراضي لتلك الحبة. في جميع هذه الحالات ، لا يمكن أن تستخدم الفول متغير مثيل مشترك لأنه يمكن أن يؤدي إلى عدم تناسق البيانات.
    • الجلسة : يتم إنشاء وحدة برامج لكل جلسة HTTP
    • جلسة عالمية: يتم إنشاء جلسة عالمية لتطبيقات Portlet.

إطار الربيع قابل للتمديد ، أي يمكنك إنشاء النطاق الخاص بك أيضًا. يتم استخدام سمة "النطاق" لعنصر الفول لتعريف النطاق.
كيف تصبح مطور مكدس كامل

تغليف…

كان هذا كله يتعلق بأسئلة وأجوبة مقابلة Spring التي يجب معرفتها والتي تدور حول إطار عمل Spring - و Spring MVC ، على وجه الدقة. إذا كنت مطور Java تتطلع إلى البدء في Spring ، فلا يمكن أن يكون هناك وقت أفضل! اقرأ المزيد إذا كنت تبحث عن أسئلة مقابلة Java.

اقض بعض وقتك الثمين في الحصول على أسئلة مقابلة Java Spring وستكون على ما يرام. تبحث المؤسسات عن المطورين الذين لديهم قيادة قوية في هذا الإطار - بفضل الميزات التي يقدمها.

قم بالتسجيل في دورات هندسة البرمجيات من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

كن مطورًا للمكدس الكامل

UpGrad و IIIT-Bangalore's دبلوم PG في تطوير البرمجيات
تقدم لبرنامج Executive PG في تطوير البرمجيات من IIITB