-
كيف يعمل السبات ولماذا يجب عليك استخدامه؟
مبدأ:
1. قم بقراءة وتحليل ملف التكوين
2. قم بقراءة معلومات التعيين وتحليلها وإنشاء SessionFactory
3. الجلسة المفتوحة
4. إنشاء معاملة المعاملة
5. عمليات الثبات
6. إرسال المعاملة
7. إغلاق الجلسة
8. أغلق SessionFactory
لماذا الاستخدام:
1. يتم تغليف كود وصول JDBC إلى قاعدة البيانات، مما يبسط بشكل كبير الكود الممل والمتكرر في طبقة الوصول إلى البيانات.
2. السبات هو إطار استمراري سائد يعتمد على JDBC وتنفيذ ORM ممتاز. إنه يبسط إلى حد كبير عمل الترميز لطبقة DAO.
3. يستخدم السبات آلية انعكاس Java بدلاً من برنامج تحسين كود البايت لتحقيق الشفافية.
4. أداء السبات جيد جدًا لأنه إطار خفيف الوزن. مرونة رسم الخرائط رائعة. وهو يدعم قواعد البيانات العلائقية المختلفة، بدءًا من العلاقات المعقدة من واحد إلى واحد إلى العديد من العلاقات المعقدة.
2. كيف يتم تحميل السبات البطيء؟
1. تنفيذ التحميل البطيء Hibernate2: أ) كائن الكيان ب) المجموعة (المجموعة)
2. يوفر Hibernate3 وظيفة تحميل كسولة للخصائص
عندما يقوم السبات بالاستعلام عن البيانات، فإن البيانات غير موجودة في الذاكرة، وعندما يعمل البرنامج بالفعل على البيانات، يكون الكائن موجودًا في الذاكرة، وبالتالي يؤدي إلى التحميل البطيء . أداء.
3. كيف يمكن إدراك العلاقة بين الفئات في السبات (مثل: علاقة واحد إلى متعدد، علاقة متعدد إلى متعدد)
تنعكس العلاقة بين الفئات بشكل أساسي في تشغيل العلاقة بين الجداول، حيث تعمل جميعها على الكائنات. يتم تعيين جميع الجداول والفئات معًا في برنامجنا، ويتم تعيينها معًا من خلال ملف التكوين -one. واحد إلى كثير، كثير إلى كثير،
4. دعونا نتحدث عن آلية التخزين المؤقت للإسبات
1. توجد ذاكرة التخزين المؤقت الداخلية في وضع السبات، وتسمى أيضًا ذاكرة التخزين المؤقت من المستوى الأول، والتي تنتمي إلى ذاكرة التخزين المؤقت على مستوى معاملة التطبيق.
2. ذاكرة التخزين المؤقت للمستوى الثاني:
أ) التطبيق وذاكرة التخزين المؤقت
ب) شروط ذاكرة التخزين المؤقت الموزعة: لن يتم تعديل البيانات من قبل طرف ثالث، حجم البيانات ضمن نطاق مقبول، تكرار تحديث البيانات منخفض، يتم استخدام نفس البيانات بشكل متكرر من قبل النظام، البيانات غير الهامة
ج) تنفيذ ذاكرة التخزين المؤقت لجهة خارجية
5. طريقة الاستعلام السبات
SQL، المعايير، تكوين الكائن
هقل:
1. استعلام السمة
2. استعلام المعلمات، استعلام المعلمات المسمى
3. الاستعلام ذو الصلة
4. استعلام الترحيل
5. الوظائف الإحصائية
6. كيفية تحسين السبات؟
1. استخدم اقتران رأس بأطراف ثنائي الاتجاه بدلاً من اقتران رأس بأطراف أحادي الاتجاه.
2. الاستخدام المرن للارتباطات ذات الاتجاه الواحد من واحد إلى متعدد
3. بدلاً من واحد لواحد، استخدم متعدد لواحد بدلاً من ذلك.
4. قم بتكوين ذاكرة التخزين المؤقت للكائن ولا تستخدم ذاكرة التخزين المؤقت للمجموعة
5. استخدم الحقيبة للمجموعات من واحد إلى العديد وقم بتعيينها للمجموعات من العديد إلى العديد.
6. استخدام تعدد الأشكال الصريح في الفئات الموروثة
7. يجب أن يكون هناك عدد أقل من حقول الجدول، ولا تخف من وجود عدد كبير جدًا من ارتباطات الجدول، وأن تتمتع بدعم ذاكرة التخزين المؤقت من المستوى الثاني.
7. كيف تعمل الدعامات؟ لماذا استخدام الدعامات؟
آلية العمل:
سير عمل الدعامات:
عندما يبدأ تطبيق الويب، سيتم تحميل ActionServlet للتهيئة وسيبدأ ActionServlet من
اقرأ معلومات التكوين من ملف struts-config.xml وقم بتخزينها في كائنات التكوين المختلفة. عندما يتلقى ActionServlet طلب العميل، فإنه سيقوم بتنفيذ العملية التالية.
-(1) استرداد مثيل ActionMapping الذي يطابق طلب المستخدم، إذا لم يكن موجودًا، قم بإرجاع معلومات مسار الطلب غير الصالحة؛
-(2) في حالة عدم وجود مثيل ActionForm، قم بإنشاء كائن ActionForm واحفظ بيانات النموذج المرسلة من قبل العميل في كائن ActionForm؛
-(3) تحديد ما إذا كان التحقق من صحة النموذج مطلوبًا بناءً على معلومات التكوين. إذا كان التحقق مطلوبًا، فاستدعاء طريقة التحقق من الصحة () الخاصة بـ ActionForm؛
-(4) إذا كانت طريقة التحقق من الصحة () الخاصة بـ ActionForm تُرجع قيمة فارغة أو تُرجع كائن ActuibErrors الذي لا يحتوي على ActionMessage، فهذا يعني أن التحقق من صحة النموذج ناجح؛
-(5) يقرر ActionServlet الإجراء الذي سيتم إعادة توجيه الطلب إليه بناءً على معلومات التعيين الموجودة في ActionMapping. إذا لم يكن مثيل الإجراء المقابل موجودًا، فقم أولاً بإنشاء هذا المثيل ثم قم باستدعاء طريقة تنفيذ الإجراء () ؛
-(6) تقوم طريقة تنفيذ () بإرجاع كائن ActionForward، ويقوم ActionServlet بإعادة توجيه طلب العميل إلى مكون JSP المشار إليه بواسطة كائن ActionForward؛
-(7) يشير كائن ActionForward إلى مكون JSP لإنشاء صفحة ويب ديناميكية وإعادتها إلى العميل؛
لماذا الاستخدام:
إن ظهور تقنيات JSP وServlet وJavaBean يجعل من الممكن لنا بناء أنظمة تطبيقات مؤسسية قوية. لكن الأنظمة المبنية بهذه التقنيات معقدة للغاية، لذا فوق هذا، نحتاج إلى قاعدة، قاعدة لتنظيم هذه التقنيات. هذا هو الإطار، وقد ظهرت Struts إلى الوجود.
تتكون التطبيقات التي تم تطويرها بناءً على Struts من ثلاثة أنواع من المكونات: مكونات وحدة التحكم، ومكونات النموذج، ومكونات العرض.
8. كيف يتم التحقق من صحة إطار عمل Struts؟
قم بتكوين مطالبات خطأ محددة في ملف تكوين الدعامات، ثم قم باستدعاء طريقة التحقق من الصحة () في FormBean على وجه التحديد.
9. دعونا نتحدث عن نمط تصميم الدعامات
وضع MVC: يتم تحميل ActionServler وتهيئته عند بدء تشغيل تطبيق الويب. عندما يرسل المستخدم النموذج، يتم إنشاء كائن ActionForm الذي تم تكوينه وتعبئته بالبيانات المقابلة للنموذج. يحدد ActionServler ما إذا كان التحقق من صحة النموذج مطلوبًا بناءً على الإعدادات التي تم تكوينها في ملف Struts-config.xml، فإنه يستدعي التحقق من صحة () الخاص بـ ActionForm. بعد التحقق، حدد الإجراء الذي تريد إرسال الطلب إليه. إذا كان الإجراء غير موجود، فسيقوم ActionServlet أولاً بإنشاء هذا الكائن ثم استدعاء أسلوب التنفيذ () الخاص بالإجراء. يحصل Execute() على البيانات من كائن ActionForm، ويكمل منطق الأعمال، ويعيد كائن ActionForward، ثم يقوم ActionServlet بإعادة توجيه طلب العميل إلى مكون jsp المحدد بواسطة كائن ActionForward، ويقوم كائن jsp المحدد بواسطة كائن ActionForward بإنشاء صفحة ويب ديناميكية يعيدها إلى العميل.
10. كيف يعمل الربيع ولماذا يجب استخدامه؟
1. يطلب Spring MVC تقديم جميع الطلبات إلى DispatcherServlet، الذي سيعهد إلى وحدات أخرى من نظام التطبيق لتكون مسؤولة عن المعالجة الفعلية للطلبات.
2.DispatcherServlet يستعلم عن HandlerMapping واحد أو أكثر للعثور على وحدة التحكم التي تتعامل مع الطلب.
3.DispatcherServlet يرجى إرسال الطلب إلى وحدة التحكم المستهدفة
4. بعد قيام وحدة التحكم بمعالجة منطق الأعمال، ستقوم بإرجاع ModelAndView
5. يستعلم Dispathcher عن موزعي عرض ViewResolver واحد أو أكثر للعثور على كائن العرض المحدد بواسطة كائن ModelAndView
6. كائن العرض مسؤول عن عرضه وإعادته إلى العميل.
لماذا الاستخدام:
{يسمح AOP للمطورين بإنشاء اهتمامات غير سلوكية، تسمى الاهتمامات الشاملة، وإدراجها في كود التطبيق. بعد استخدام AOP، يمكن تقسيم الخدمات العامة (مثل التسجيل والثبات والمعاملات وما إلى ذلك) إلى جوانب وتطبيقها على كائنات المجال دون زيادة تعقيد نموذج الكائن لكائنات المجال.
تسمح IOC بإنشاء بيئة تطبيق يمكنها إنشاء كائنات ثم تمرير هذه الكائنات إلى الكائنات المتعاونة معها. كما تشير كلمة "انعكاس"، فإن IOC تشبه JNDI في الاتجاه المعاكس. بدلاً من استخدام مجموعة من المصانع المجردة، ومحددات مواقع الخدمة، والوحدات الفردية، والبناء المستقيم، يتم إنشاء كل كائن من الكائنات المتعاونة معه. لذلك، تقوم الحاوية بإدارة كائن التعاون (المتعاون).
على الرغم من أن Spring عبارة عن إطار عمل AOP، فهو أيضًا حاوية IOC. أفضل ما في Spring هو أنه يساعدك على استبدال الأشياء. مع Spring، ما عليك سوى إضافة التبعيات (الكائنات المتعاونة) باستخدام خصائص JavaBean وملفات التكوين. ومن ثم يصبح من السهل استبدال الكائنات المتعاونة بواجهات مماثلة عند الحاجة. }
إطار الربيع عبارة عن بنية متعددة الطبقات تتكون من 7 وحدات محددة جيدًا. يتم إنشاء وحدات الربيع أعلى الحاوية الأساسية، والتي تحدد كيفية إنشاء الحبوب وتكوينها وإدارتها، كما هو موضح في الشكل 1.
يمكن أن توجد كل وحدة (أو مكون) تشكل إطار عمل Spring بمفردها أو يمكن تنفيذها بالاشتراك مع وحدة واحدة أو أكثر من الوحدات الأخرى. وظائف كل وحدة هي كما يلي:
☆ الحاوية الأساسية: توفر الحاوية الأساسية الوظائف الأساسية لإطار عمل Spring. المكون الرئيسي للحاوية الأساسية هو BeanFactory، وهو تنفيذ نمط المصنع. يستخدم BeanFactory نمط انعكاس التحكم (IOC) لفصل تكوين التطبيق ومواصفات التبعية عن رمز التطبيق الفعلي.
☆ سياق الربيع: سياق الربيع هو ملف تكوين يوفر معلومات السياق لإطار عمل الربيع. يتضمن سياق الربيع خدمات المؤسسات مثل JNDI وEJB والبريد الإلكتروني والتدويل والتحقق من الصحة ووظائف الإرسال.
☆ Spring AOP: من خلال ميزات إدارة التكوين، تقوم وحدة Spring AOP بدمج وظائف البرمجة الموجهة نحو الجوانب مباشرة في إطار عمل Spring. لذلك، من السهل جعل أي كائن تتم إدارته بواسطة إطار عمل Spring يدعم AOP. توفر وحدة Spring AOP خدمات إدارة المعاملات للكائنات في التطبيقات المستندة إلى Spring. باستخدام Spring AOP، يمكنك دمج إدارة المعاملات التصريحية في تطبيقك دون الاعتماد على مكونات EJB.
☆ Spring DAO: توفر طبقة تجريد JDBC DAO تسلسلاً هرميًا للاستثناءات ذات معنى يمكن استخدامه لإدارة معالجة الاستثناءات ورسائل الخطأ التي يلقيها بائعو قواعد البيانات المختلفون. يعمل التسلسل الهرمي للاستثناءات على تبسيط معالجة الأخطاء وتقليل مقدار كود الاستثناء الذي يجب كتابته (مثل فتح وإغلاق الاتصالات) بشكل كبير. تتبع الاستثناءات الموجهة لـ JDBC الخاصة بـ Spring DAO التسلسل الهرمي لاستثناءات DAO الشائعة.
☆ Spring ORM: يقوم إطار عمل Spring بإدراج العديد من أطر عمل ORM لتوفير أدوات علاقات كائنات ORM، بما في ذلك JDO وHbernate وiBatis SQL Map. كل هذا يتوافق مع معاملات Spring العامة والتسلسل الهرمي لاستثناءات DAO.
☆ وحدة Spring Web: تم إنشاء وحدة سياق الويب على وحدة سياق التطبيق وتوفر سياقًا للتطبيقات المستندة إلى الويب. لذلك، يدعم إطار عمل Spring التكامل مع Jakarta Struts. تعمل وحدة الويب أيضًا على تبسيط التعامل مع الطلبات متعددة الأجزاء وربط معلمات الطلب بكائنات المجال.
☆ إطار عمل Spring MVC: إطار عمل MVC هو تطبيق MVC كامل المواصفات لبناء تطبيقات الويب. من خلال واجهة الإستراتيجية، يصبح إطار MVC قابلاً للتكوين بدرجة كبيرة، ويستوعب MVC عددًا كبيرًا من تقنيات العرض، بما في ذلك JSP وVelocity وTiles وiText وPOI.
يمكن استخدام ميزات Spring Framework في أي خادم J2EE، كما أن معظم الميزات مناسبة أيضًا للبيئات غير المُدارة. النقطة الأساسية في Spring هي دعم الأعمال القابلة لإعادة الاستخدام وكائنات الوصول إلى البيانات غير المرتبطة بخدمات J2EE محددة. ليس هناك شك في أنه يمكن إعادة استخدام هذه الكائنات بين بيئات J2EE المختلفة (الويب أو EJB)، والتطبيقات المستقلة، وبيئات الاختبار.
اللجنة الأولمبية الدولية وAOP
المفهوم الأساسي لنمط عكس التحكم (يُسمى أيضًا تدخل التبعية) هو أنك لا تقوم بإنشاء كائنات، ولكنك تصف كيفية إنشائها. إنه غير متصل مباشرة بالكائنات والخدمات الموجودة في الكود، ولكن أي مكون يتطلب الخدمة الموضحة في ملف التكوين. الحاوية (في إطار الربيع، حاوية IOC) مسؤولة عن ربطها معًا.
في سيناريو IOC النموذجي، تقوم الحاوية بإنشاء كافة الكائنات وتعيين الخصائص الضرورية لربطها معًا وتحديد متى يتم استدعاء الأساليب. يسرد الجدول التالي وضع تنفيذ IOC.
يتم تنفيذ حاوية IOC الخاصة بإطار عمل Spring باستخدام النوع 2 والنوع 3.
البرمجة الموجهة نحو الجانب
البرمجة الموجهة نحو الجوانب، أو AOP، هي تقنية برمجة تسمح للمبرمجين بتقسيم السلوكيات التي تتقاطع مع الاهتمامات أو خطوط المسؤولية النموذجية، مثل التسجيل وإدارة المعاملات. البنية الأساسية لـ AOP هي الجوانب، التي تلخص السلوك الذي يؤثر على فئات متعددة في وحدات قابلة لإعادة الاستخدام.
تعد AOP وIOC من التقنيات التكميلية التي تستخدم نهجًا معياريًا لحل المشكلات المعقدة في تطوير تطبيقات المؤسسات. في أسلوب التطوير النموذجي الموجه للكائنات، يمكن وضع بيانات التسجيل في جميع الأساليب وفئات Java لتنفيذ وظيفة التسجيل. في نهج AOP، يمكن أيضًا تقسيم خدمات التسجيل إلى وحدات وتطبيقها بشكل صريح على المكونات التي تتطلب التسجيل. بالطبع، الميزة هي أن فئة Java لا تحتاج إلى معرفة وجود خدمة السجل، ولا تحتاج إلى النظر في التعليمات البرمجية ذات الصلة. لذلك، فإن كود التطبيق المكتوب في Spring AOP مقترن بشكل فضفاض.
تم دمج وظيفة AOP بالكامل في سياق إدارة معاملات Spring والتسجيل والعديد من الميزات الأخرى.
حاوية اللجنة الأولمبية الدولية
جوهر تصميم Spring هو الحزمة org.springframework.beans، والتي تم تصميمها للاستخدام مع مكونات JavaBean. عادة لا يتم استخدام هذه الحزمة مباشرة من قبل المستخدم، ولكن يتم استخدامها من قبل الخادم كوسيط منخفض المستوى لمعظم الوظائف الأخرى. ثاني أعلى مستوى من التجريد هو واجهة BeanFactory، وهي تطبيق لنمط تصميم المصنع وتسمح بإنشاء الكائنات واسترجاعها بالاسم. يمكن لـ BeanFactory أيضًا إدارة العلاقات بين الكائنات.
يدعم BeanFactory نموذجين للكائنات.
□ يوفر النموذج الأحادي الشكل نسخة مشتركة لكائن باسم محدد يمكن استرجاعه في وقت الاستعلام. Singleton هو نموذج الكائن الافتراضي والأكثر استخدامًا. مثالية لكائنات الخدمة عديمة الحالة.
□ يضمن نموذج النموذج الأولي إنشاء كائن منفصل لكل عملية استرجاع. يكون النموذج الأولي مناسبًا بشكل أفضل عندما يحتاج كل مستخدم إلى كائن خاص به.
مفهوم مصنع الفول هو أساس الربيع كحاوية IOC. تنقل IOC مسؤولية التعامل مع الأشياء من كود التطبيق إلى إطار العمل. كما سأوضح في المثال التالي، يستخدم إطار عمل Spring خصائص JavaBean وبيانات التكوين للإشارة إلى التبعيات التي يجب تعيينها.
واجهة مصنع الفول
نظرًا لأن org.springframework.beans.factory.BeanFactory عبارة عن واجهة بسيطة، فيمكن تنفيذها لمختلف طرق التخزين الأساسية. تعريف BeanFactory الأكثر استخدامًا هو XmlBeanFactory، الذي يقوم بتحميل الفاصوليا بناءً على التعريفات في ملف XML، كما هو موضح في القائمة 1.
القائمة 1.XmlBeanFactory
BeanFactory Factory = new XMLBeanFactory(new FileInputSteam("mybean.xml"));
يتم تحميل الفاصوليا المعرفة في ملفات XML بشكل سلبي، مما يعني أنه لا تتم تهيئة الحبة نفسها حتى تكون هناك حاجة إليها. لاسترداد حبة من BeanFactory، ما عليك سوى استدعاء طريقة getBean()، وتمرير اسم الحبة المراد استردادها، كما هو موضح في القائمة 2.
القائمة 2.getBean()
MyBean mybean = (MyBean)factor.getBean("mybean");
يمكن أن يكون كل تعريف للفاصوليا POJO (محددًا باسم فئة وخصائص تهيئة JavaBean) أو FactoryBean. تضيف واجهة FactoryBean مستوى من المراوغة للتطبيقات التي تم إنشاؤها باستخدام إطار عمل Spring.
مثال اللجنة الأولمبية الدولية
أسهل طريقة لفهم انعكاس التحكم هي رؤيته أثناء العمل. لقد اختتمت الجزء الأول من سلسلة Spring المكونة من ثلاثة أجزاء بمثال يوضح كيفية إدخال تبعيات تطبيقك (بدلاً من بنائها) من خلال حاوية Spring IOC.
لقد استخدمت حالة استخدام فتح حساب ائتماني عبر الإنترنت كنقطة بداية. لهذا التنفيذ، يتطلب فتح حساب ائتماني من المستخدم التفاعل مع الخدمات التالية:
☆ خدمة التصنيف الائتماني، الاستعلام عن معلومات السجل الائتماني للمستخدم.
☆ خدمة ربط الرسائل عن بعد لإدخال معلومات العميل وربط معلومات العميل مع بطاقة الائتمان ومعلومات البنك للخصم التلقائي (إذا لزم الأمر).
☆ خدمة البريد الإلكتروني لإرسال رسائل البريد الإلكتروني حول حالة بطاقة الائتمان للمستخدمين.
ثلاث واجهات
في هذا المثال، أفترض أن الخدمات موجودة بالفعل ومن الأفضل دمجها بطريقة غير مترابطة. تعرض القائمة التالية واجهات برمجة التطبيقات للخدمات الثلاث.
القائمة 3. واجهة تصنيف الائتمان
الواجهة العامة CreditRatingInterface {
getUserCreditHistoryInformation(ICustomer iCustomer);
}
توفر واجهة التصنيف الائتماني الموضحة في القائمة 3 معلومات عن السجل الائتماني. يتطلب كائن العميل الذي يحتوي على معلومات العميل. يتم توفير تنفيذ هذه الواجهة من خلال فئة CreditRating.
القائمة 4. واجهة ربط الائتمان
الواجهة العامة CreditLinkingInterface {
سلسلة عامة getUrl();
public void setUrl(String url);
الرابط الفارغ العامCreditBankAccount() يلقي استثناء؛
}
تقوم واجهة ربط الائتمان بربط معلومات سجل الائتمان بالمعلومات المصرفية (إذا لزم الأمر) وإدراج معلومات بطاقة الائتمان الخاصة بالمستخدم. واجهة رابط الائتمان هي خدمة عن بعد، ويتم الاستعلام عنها من خلال طريقة getUrl(). يتم تعيين عنوان URL بواسطة آلية تكوين حبة إطار عمل Spring، والتي سأناقشها لاحقًا. يتم توفير تنفيذ هذه الواجهة من خلال فئة CreditLinking.
القائمة 5. واجهة البريد الإلكتروني
الواجهة العامة EmailInterface {
public void sendEmail(ICustomer iCustomer);
سلسلة عامة getFromEmail();
public void setFromEmail(String fromEmail);
سلسلة عامة getPassword();
مجموعة باطلة عامة (كلمة مرور السلسلة) ؛
سلسلة عامة getSmtpHost();
public void setSmtpHost(String smtpHost);
سلسلة getUserId() العامة؛
public void setUserId(String userId);
هذه المقالة مأخوذة من مدونة CSDN، يرجى الإشارة إلى المصدر عند إعادة الطباعة: http://blog.csdn.net/loshu2003/archive/2009/12/31/5111344.aspx.
-