يخبر هذا المقال أسئلة الاختبار المكتوبة المقابلة الكلاسيكية وإجاباتها المرجعية. شاركه للرجوع إليه ، على النحو التالي:
1. كيف يعمل السبات ولماذا يجب استخدامه؟
مبدأ:
1. قراءة ملفات التكوين وحصة
2. اقرأ وتحليل معلومات التعيين وإنشاء SessionFactory
3. جلسة مفتوحة
4. إنشاء نقل معاملة
5. عملية الثبات
6. إرسال المعاملات
7. جلسة إغلاق
8
لماذا الاستخدام:
①. تم تغليف رمز قواعد البيانات التي تصل إلى JDBC ، مما يؤدي إلى تبسيط الشفرة المتكررة المرهقة بشكل كبير في طبقة الوصول إلى البيانات.
②. Hibernate هو إطار ثبات رئيسي يعتمد على JDBC وهو تطبيق orm ممتاز. إنه يبسط إلى حد كبير عمل الترميز لطبقة DAO إلى حد كبير
③. يستخدم Hibernate آلية انعكاس Java ، بدلاً من برامج تعزيز Bytecode لتحقيق الشفافية.
④. يؤدي السبات بشكل جيد للغاية لأنه إطار خفيف الوزن. مرونة رسم الخرائط ممتازة. وهو يدعم قواعد البيانات العلائقية المختلفة ، من واحد إلى واحد إلى العديد من العلاقات المعقدة.
2. كيف يؤخر السبات؟
①. Hibernate2 تأخير تحميل تنفيذ: أ) كائن كيان ب) المجموعة (المجموعة)
②. يوفر Hibernate3 وظيفة التحميل المتأخرة للسمات. عندما يقوم keererys ببيانات keerernate ، فإن البيانات غير موجودة والذاكرة. عندما يعمل البرنامج حقًا على البيانات ، يوجد الكائن والذاكرة ، مما يدرك التحميل المتأخر. يحفظ النفقات العامة لذاكرة الخادم وبالتالي يحسن أداء الخادم.
3. كيفية تنفيذ العلاقة بين الفصول الدراسية في السبات؟ (مثل العلاقة بين العدد ، العديد من العدد)
تنعكس العلاقة بين الطبقات بشكل أساسي في العلاقة بين الجداول. أنها تعمل على الأشياء في المدينة. يقوم برنامجنا بتعيين جميع الجداول والفصول الدراسية معًا ، ويتم تمريرها من خلال العديد من إلى واحد ، من فرد ، وعدد كبير من العدد ، والعديد من العدد في ملف التكوين.
4. دعنا نتحدث عن آلية ذاكرة التخزين المؤقت لـ Hibernate
①. تسمى ذاكرة التخزين المؤقت الداخلية أيضًا ذاكرة التخزين المؤقت من المستوى الأول في سباتي ، والتي تنتمي إلى ذاكرة التخزين المؤقت على مستوى التطبيق
②. ذاكرة التخزين المؤقت المستوى 2:
أ) التطبيق وذاكرة التخزين المؤقت
ب) شروط ذاكرة التخزين المؤقت الموزعة: لن يتم تعديل البيانات من قبل أطراف ثالثة ، يكون حجم البيانات ضمن نطاق مقبول ، وتردد تحديث البيانات منخفض ، ويتم استخدام البيانات نفسها بشكل متكرر من قبل النظام ، والبيانات غير الحرجة
ج) تنفيذ ذاكرة التخزين المؤقت لجهة خارجية
5. طريقة الاستعلام السباتي
SQL ، المعايير ، كائن الكائن
HQL:
1. استعلام السمة
2. استعلام المعلمة ، اسم الاستعلام المعلمة المسماة
3. الاستعلام ذات الصلة
4. استعلام ترقيم الصفحات
5. وظائف إحصائية
6. كيفية تحسين السبات؟
①. استخدم جمعية ثنائية الاتجاه من شخص واحد ، وليس من شخص واحد إلى أقصى. استخدم جمعية مرنة واحدة إلى طاقة واحدة ③. لا تستخدم فرديًا ، استخدم العديد من الأشياء بدلاً من ذلك. تكوين ذاكرة التخزين المؤقت للكائن ، لا تستخدم تعيين ذاكرة التخزين المؤقت ⑤. استخدم حقيبة لمجموعات واحدة إلى أقصى ، واستخدم مجموعة مجموعات كثيرة إلى العديد.
⑥. استخدام تعدد الأشكال الصريح في فصول الميراث. يجب أن يكون هناك عدد أقل من حقول الجدول ، ولا تخاف من العديد من جمعيات الجدول. هناك ذاكرة التخزين المؤقت الثانوية لدعمك.
7. دعامات العمل آلية؟ لماذا تستخدم الدعامات؟
آلية العمل:
سير عمل الدعامات:
سيتم تحميل إجراءات التهيئة Servels Servlet عند بدء تشغيل تطبيق الويب. سيتم تحميل ActionServlet من
قراءة معلومات التكوين من ملف struts-config.xml وتخزينها في كائنات التكوين المختلفة
عندما يتلقى ActionServlet طلب عميل ، سيتم تنفيذ العملية التالية.
-(1) استرداد مثيل ActionMapping الذي يطابق طلب المستخدم. إذا لم يكن موجودًا ، فإنه يعيد مسار الطلب معلومات غير صالحة ؛
-(2) إذا لم يكن مثيل ActionForm غير موجود ، قم بإنشاء كائن ActionForm وحفظ بيانات النموذج المقدمة من العميل إلى كائن ActionForm ؛
-(3) قرر ما إذا كان هناك حاجة إلى التحقق من النموذج بناءً على معلومات التكوين. إذا كان التحقق مطلوبًا ، فإن طريقة Call Actionform's Validation () ؛
-(4) إذا كانت طريقة التحقق من صحة () إرجاع NULL أو تُرجع كائن actuiberrors الذي لا يحتوي على ActionMessage ، فهذا يعني أن التحقق من النموذج ناجح ؛
-(5) تقرر ActionServlet الإجراء الذي يجب إعادة توجيهه للطلب بناءً على معلومات التعيين الواردة في ActionMapping. إذا لم يكن مثيل الإجراء المقابل موجودًا ، فقم بإنشاء هذا المثيل أولاً ثم اتصل على طريقة تنفيذ الإجراء () ؛
-(6) تنفيذ () Action's Execute () إرجاع كائن ActionForward ، ويقوم ActionServlet بإعادة توجيه طلب العميل إلى مكون JSP الذي يشير إليه كائن ActionForward ؛
-(7) يشير كائن ActionForward إلى مكون JSP لإنشاء صفحة ويب ديناميكية وإعادتها إلى العميل ؛
لماذا الاستخدام:
يوفر لنا ظهور تقنيات JSP و Servlet و Javabean إمكانية بناء أنظمة تطبيقات مؤسسة قوية. لكن النظام المبني مع هذه التقنيات هو فوضوي للغاية ، لذلك علاوة على ذلك ، نحتاج إلى قاعدة وقاعدة لتنظيم هذه التقنيات. هذا هو الإطار ، وظهرت الدعامات.
تتكون التطبيقات التي تم تطويرها على أساس الدعامات من ثلاثة أنواع من المكونات: مكونات وحدة التحكم ، ومكونات النموذج ، ومكونات العرض
8. كيف يتم التحقق من صحة إطار التحقق من صحة الدعامات؟
قم بتكوين مطالبات خطأ محددة في ملف تكوين Struts ، ثم اتصل بالطريقة VEVIDATION () في Formbean.
9. دعنا نتحدث عن نمط تصميم الدعامات
MVC Mode: يتم تحميل Actocalervler وتهيئته عند بدء تشغيل تطبيق الويب. عندما يقدم المستخدم نموذجًا ، يتم إنشاء كائن ActionForm الذي تم تكوينه وملءه في البيانات المقابلة للنموذج. تقرر ActionServler ما إذا كان هناك حاجة إلى التحقق من النموذج بناءً على الإعدادات التي تم تكوينها بواسطة ملف Struts-Config.xml. إذا لزم الأمر ، فإن Call ActionForm's التحقق من صحة () وحدد الإجراء الذي يجب إرسال الطلب إليه. إذا لم يكن الإجراء موجودًا ، فسيقوم ActionServlet أولاً بإنشاء هذا الكائن ثم استدعاء طريقة تنفيذ الإجراء (). يحصل Execute () على بيانات من كائن ActionForm ، ويكمل منطق العمل ، ويعيد كائن ActionForward. يقوم Actoryervlet بإعادة توجيه طلب العميل إلى مكون JSP المحدد بواسطة كائن ActionForward. يقوم JSP المحدد بواسطة كائن ActionForward بإنشاء صفحة ويب ديناميكية وإعادتها إلى العميل.
10. آلية عمل الربيع ولماذا؟
①.SPRING MVC يرجى تقديم جميع الطلبات إلى Dispatcherservlet ، والتي ستقوم بتكليف الوحدات الأخرى لنظام التطبيق بأن تكون مسؤولة عن المعالجة الفعلية للطلب.
②.Dispatcherservlet Quisterse One أو أكثر من معدات ويجد وحدة التحكم التي تتعامل مع الطلب.
③.Dispatcherservlet يرجى إرسال الطلب إلى وحدة التحكم الهدف
④. بعد أن تقوم وحدة التحكم بمعالجة منطق الأعمال ، ستعيد نموذج ModelandView.
⑤.dispathcher Querys One One One ViewResolver View Resolvers ويجد كائن العرض المحدد بواسطة كائن ModelandView ⑥. كائن العرض مسؤول عن تقديمه وإعادته إلى العميل.
لماذا الاستخدام:
{يسمح AOP للمطورين بإنشاء مخاوف غير سلبية ، تسمى المخاوف المتقاطعة ، وإدخالهم في رمز التطبيق. بعد استخدام AOP ، يمكن تقسيم الخدمات العامة (مثل السجلات ، والثبات ، والمعاملات ، وما إلى ذلك) إلى جوانب وتطبيقها على كائنات المجال دون زيادة تعقيد نموذج كائن كائنات المجال.
يسمح IOC بإنشاء بيئة تطبيق حيث يمكن بناء الكائنات ثم تمرير كائناتها التعاونية إلى تلك الكائنات. كما تشير كلمة انعكاس ، فإن IOC يشبه JNDI العكسي. دون استخدام مجموعة من المصانع المجردة ، ومواقع الخدمات ، والفرد ، والبناء المباشر ، يتم إنشاء كل كائن مع كائناته التعاونية. لذلك ، تتم إدارة التعاون بواسطة الحاوية.
الربيع عبارة عن حاوية IOC حتى لو كانت إطارًا AOP. أفضل شيء في الربيع هو أنه يساعدك على استبدال الكائنات. مع Spring ، ما عليك سوى إضافة تبعيات (كائنات التعاون) باستخدام خصائص Javabean وملفات التكوين. يمكن بعد ذلك استبدال كائنات التعاون مع واجهات مماثلة عند الحاجة. }
إطار الربيع هو بنية هرمية تتكون من 7 وحدات محددة جيدًا. تم تصميم وحدات الربيع فوق الحاويات الأساسية التي تحدد كيفية إنشاء الفاصوليا وتكوينها وإدارتها.
يمكن أن توجد كل وحدة (أو مكون) تشكل إطار عمل الربيع بمفردها أو يتم تنفيذها بالاقتران مع وحدة أو أكثر من الوحدات الأخرى. وظائف كل وحدة هي كما يلي:
☆ الحاوية الأساسية: توفر الحاوية الأساسية الوظائف الأساسية لإطار الربيع. المكون الرئيسي للحاوية الأساسية هو Beanfactory ، وهو تطبيق لنمط المصنع. يستخدم Beanfactory وضع تحكم (IOC) لفصل مواصفات التكوين والاعتماد على التطبيق عن رمز التطبيق الفعلي.
☆ سياق الربيع: سياق الربيع هو ملف تكوين يوفر معلومات السياق إلى إطار الربيع. يشتمل سياق الربيع على خدمات المؤسسات مثل JNDI و EJB والبريد الإلكتروني والتدويل وقدرات جدولة الشيكات.
☆ Spring AOP: من خلال ميزة إدارة التكوين ، تدمج وحدة الربيع AOP بشكل مباشر وظائف البرمجة الموجهة إلى جانب في إطار الربيع. لذلك ، من السهل جعل أي كائن يديره دعم Spring Framework AOP. توفر وحدة SPRING AOP خدمات إدارة المعاملات للكائنات في التطبيقات المستندة إلى الربيع. باستخدام الربيع AOP ، يمكن دمج إدارة المعاملات التعريفية في التطبيق دون الاعتماد على مكونات EJB.
☆ Spring DAO: توفر طبقة التجريد JDBC DAO تسلسلًا هرميًا مفيدًا يمكن استخدامه لإدارة رسائل معالجة الاستثناءات ورسائل الخطأ التي يتم إلقاؤها بواسطة بائعي قواعد البيانات المختلفة. يقوم التسلسل الهرمي للاستثناء بتبسيط معالجة الأخطاء ويقلل بشكل كبير من مقدار رمز الاستثناء الذي يجب كتابته (مثل فتح واتصالات الإغلاق). استثناءات الربيع DAO JDBC الموجه نحو التسلسل الهرمي الاستثناء المشترك DAO.
☆ Spring ORM: يقوم إطار عمل الربيع بإدراج العديد من أطر عمل ORM ، وبالتالي توفير أدوات علاقة كائن ORM ، بما في ذلك خريطة JDO و Hibernate و Ibatis SQL. كل هذا يتبع معاملة الربيع المشتركة والتسلسل الهرمي للاستثناء DAO.
☆ وحدة الويب Spring Web: تم تصميم وحدة سياق الويب على وحدة سياق التطبيق وتوفر سياقًا للتطبيقات المستندة إلى الويب. لذلك ، يدعم إطار الربيع التكامل مع دعامات جاكرتا. تعمل وحدة الويب أيضًا على تبسيط عمل التعامل مع الطلبات متعددة الأجزاء ومعلمات طلب الربط لكائنات المجال.
☆ إطار عمل الربيع MVC: إطار MVC هو تطبيق MVC يعمل بكامل طاقته لبناء تطبيقات الويب. من خلال واجهة السياسة ، يصبح إطار عمل MVC قابلاً للتكوين بشكل كبير ، ويضم MVC عددًا كبيرًا من تقنيات العرض ، بما في ذلك JSP والسرعة والبلاط و Itext و POI.
يمكن استخدام إمكانات Spring Framework في أي خادم J2EE ، ومعظمها مناسب للبيئات غير المدارة. النقطة الأساسية في الربيع هي: دعم كائنات الوصول إلى الأعمال والبيانات القابلة لإعادة الاستخدام والتي لا تكون مرتبطة بخدمات J2EE محددة. ليس هناك شك في أنه يمكن إعادة استخدام هذه الكائنات بين بيئات J2EE المختلفة (الويب أو EJB) ، والتطبيقات المستقلة ، وبيئات الاختبار.
IOC و AOP
المفهوم الأساسي للتحكم في أنماط الانعكاس (المعروف أيضًا باسم تدخل التبعية) هو عدم إنشاء كائنات ، ولكن وصف كيف يتم إنشاؤها. لا يتصل مباشرة بالكائنات والخدمات في الكود ، ولكنه يصف المكون الذي يتطلب أي خدمة في ملف التكوين. الحاويات (حاويات IOC في إطار الربيع) مسؤولة عن ربطها معًا.
في سيناريو IOC النموذجي ، تقوم الحاوية بإنشاء جميع الكائنات وتعيين الخصائص اللازمة لتوصيلها معًا ، وتحديد موعد استدعاء الطريقة. يسرد الجدول التالي نمط تنفيذ IOC.
يتم تنفيذ حاوية IOC الخاصة بـ Spring Framework باستخدام النوع 2 والنوع 3.
برمجة موجهة نحو الجانب
البرمجة الموجهة نحو الجانب ، AOP ، هي تقنية برمجة تتيح للمبرمجين تعديل السلوكيات التي تتقاطع مع المخاوف أو خطوط التقسيم النموذجية المتقاطعة للمسؤولية (مثل التسجيل وإدارة المعاملات). إن البناء الأساسي لـ AOP هو الجانب ، الذي يلف تلك السلوكيات التي تؤثر على فئات متعددة في وحدات قابلة لإعادة الاستخدام.
AOP و IOC هما تقنيات تكميلية ، وكلاهما يستخدم مقاربات معيارية لحل المشكلات المعقدة في تطوير تطبيقات المؤسسة. في التطوير النموذجي الموجهة للكائنات ، قد تكون هناك حاجة إلى وضع بيانات التسجيل في جميع الطرق وفئات Java لتنفيذ وظائف التسجيل. في نهج AOP ، يمكن تعديل خدمات السجل بدورها وتطبيقها بشكل إعلاني على المكونات التي تتطلب سجلات. بطبيعة الحال ، فإن الميزة هي أن فصول Java لا تحتاج إلى معرفة وجود خدمات السجل ، ولا تحتاج إلى النظر في التعليمات البرمجية ذات الصلة. لذلك ، فإن رمز التطبيق المكتوب في الربيع AOP يقترن بشكل فضفاض.
يتم دمج وظيفة AOP بالكامل في سياق إدارة معاملات الربيع وتسجيلها وميزات أخرى مختلفة.
حاوية IOC
في قلب تصميم Spring ، توجد حزمة org.springframework.beans ، والتي تم تصميمها لاستخدامها مع مكونات Javabean. عادة لا يتم استخدام هذه الحزمة مباشرة من قبل المستخدم ، ولكن بواسطة الخادم يستخدمها كوسيط أساسي لمعظم الوظائف الأخرى. التجريد الأكثر تقدماً هو واجهة Beanfactory ، وهي تنفيذ لنمط تصميم المصنع الذي يسمح بإنشاء الكائنات واستردادها بواسطة الأسماء. يمكن لـ Beanfactory أيضًا إدارة العلاقات بين الكائنات.
Beanfactory يدعم نموذجين للكائن.
□ يوفر نموذج Singleton مثيلات مشتركة للكائنات بأسماء محددة يمكن استردادها عند الاستعلام. Singleton هو نموذج الكائن الافتراضي والأكثر استخدامًا. مثالية لكائنات الخدمة عديمة الجنسية.
□ يضمن نموذج النموذج الأولي إنشاء كائنات منفصلة في كل مرة يتم استردادها. النماذج الأولية هي الأنسب عندما يحتاج كل مستخدم إلى كائنه الخاص.
مفهوم مصنع الفول هو أساس الربيع مثل حاوية IOC. تقوم IOC بتحويل المسؤولية عن التعامل مع الأشياء من رمز التطبيق إلى الأطر. كما سأظهر في المثال التالي ، يستخدم Framework Spring خصائص Javabean وبيانات التكوين للإشارة إلى التبعيات التي يجب تعيينها.
واجهة Beanfactory
لأن org.springframework.beans.factory.beanfactory هي واجهة بسيطة ، يمكن تنفيذها لمختلف طرق التخزين الأساسية. تعريف Beanfactory الأكثر استخدامًا هو XMLBeanFactory ، والذي يقوم بتحميل الفاصوليا وفقًا للتعريفات في ملفات XML ، كما هو موضح في القائمة 1.
قائمة 1. xmlbeanfactory
Beanfactory Factory = New XmlBeanFactory (FileInputSteam جديد ("MyBean.xml")) ؛يتم تحميل الفاصوليا المحددة في ملفات XML سلبًا ، مما يعني أنه لن يتم تهيئة الفاصوليا نفسها حتى تكون هناك حاجة إليها. لاسترداد الفول من Beanfactory ، ما عليك سوى الاتصال بالطريقة getBean () وتمريرها باسم الفول المراد استرداده ، كما هو موضح في القائمة 2.
قائمة 2. getBean ()
mybean mybean = (mybean) factory.getBean ("mybean") ؛يمكن أن يكون تعريف كل حبة إما pojo (محددة باسم الفصل وخاصية تهيئة Javabean) أو المصنع. تضيف واجهة Factorybean مستوى غير مباشر إلى التطبيقات المصممة باستخدام إطار الربيع.
مثال IOC
أسهل طريقة لفهم انعكاس التحكم هي النظر إلى تطبيقها العملي. في تلخيص الجزء 1 من سلسلة الربيع المكونة من ثلاثة أجزاء ، استخدمت مثالًا يوضح كيفية حقن تبعيات التطبيق من خلال حاويات الربيع IOC (بدلاً من بنائها).
يمكنني استخدام حالة استخدام فتح حساب الائتمان عبر الإنترنت كنقطة انطلاق. لهذا التنفيذ ، يتطلب تمكين حساب الائتمان من المستخدم التفاعل مع الخدمات التالية:
☆ خدمة تقييم مستوى الائتمان ، معلومات السجل الائتماني للمستخدم.
☆ خدمة ارتباط المعلومات عن بُعد ، أدخل معلومات العميل ، وتوصيل معلومات العميل باستخدام بطاقة الائتمان والمعلومات المصرفية للخصم التلقائي (إذا لزم الأمر).
☆ خدمة البريد الإلكتروني ، وإرسال رسائل البريد الإلكتروني للمستخدمين حول حالة بطاقة الائتمان.
ثلاث واجهات
على سبيل المثال ، أفترض أن الخدمات موجودة بالفعل ، ومن الناحية المثالية دمجها معًا بطريقة مقترنة بشكل فضفاض. تعرض القائمة التالية واجهات برنامج التطبيق للخدمات الثلاث.
قائمة 3
الواجهة العامة CreditRatingInterface {public boolean getUsercredithistoryformation (icustomer icustomer) ؛}توفر واجهة تقييم مستوى الائتمان الموضحة في القائمة 3 معلومات سجل الائتمان. يتطلب ذلك كائن عميل يحتوي على معلومات العميل. يتم توفير تنفيذ هذه الواجهة من قبل فئة الائتمان.
قائمة 4. creditlinginkingface
الواجهة العامة CreditLinkingInterface {public string geturl () ؛ public void seturl (url url string) ؛ public void linkcreditBankAccount () رمي الاستثناء ؛}تقوم واجهة ارتباط الائتمان بتوصيل معلومات سجل الائتمان بمعلومات البنك (إذا لزم الأمر) وإدراج معلومات بطاقة الائتمان الخاصة بالمستخدم. واجهة ارتباط الائتمان هي خدمة عن بُعد ، ويتم تنفيذ استعلامها من خلال طريقة geturl (). يتم تعيين عنوان URL بواسطة آلية تكوين الفول في Spring Framework ، والتي سأناقشها لاحقًا. يتم توفير تنفيذ هذه الواجهة من قبل فئة الحدود الائتمانية.
قائمة 5. البريد الإلكتروني
الواجهة العامة EmailInterface {public void sendemail (iCustomer Icustomer) ؛ السلسلة العامة getFromemail () ؛ public void setFromemail (String fromeMail) ؛ السلسلة العامة getPassword ()آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.