
إطار عمل Spring هو منصة Java مفتوحة المصدر توفر دعمًا شاملاً للبنية الأساسية لتطوير تطبيقات Java قوية بسهولة وسرعة كبيرة. تم كتابة إطار عمل Spring في البداية بواسطة Rod Johnson وتم إصداره لأول مرة بموجب ترخيص Apache 2.0 في يونيو 2003.
Spring هو إطار عمل تطوير التطبيقات الأكثر شعبية لـ Java المؤسسي. يستخدم ملايين المطورين حول العالم إطار عمل Spring لإنشاء أكواد عالية الأداء وقابلة للاختبار وإعادة الاستخدام بسهولة.
إطار عمل Spring هو منصة Java مفتوحة المصدر. تم كتابته في البداية بواسطة Rod Johnson وتم إصداره لأول مرة بموجب ترخيص Apache 2.0 في يونيو 2003.
يعتبر Spring خفيف الوزن عندما يتعلق الأمر بالحجم والشفافية. يبلغ حجم الإصدار الأساسي من إطار عمل Spring حوالي 2 ميجا بايت.
يمكن استخدام الميزات الأساسية لإطار عمل Spring في تطوير أي تطبيق Java، ولكن هناك ملحقات لبناء تطبيقات الويب أعلى منصة Java EE. يهدف إطار عمل Spring إلى جعل تطوير J2EE أسهل في الاستخدام وتعزيز ممارسات البرمجة الجيدة من خلال تمكين نموذج برمجة قائم على Plain Old Java Object POJO.
يعتبر Spring بمثابة متجر شامل لجميع تطبيقات مؤسستك. ومع ذلك، فإن Spring عبارة عن وحدات نمطية، مما يسمح لك باختيار الوحدات النمطية المناسبة لك، دون الحاجة إلى إحضار الباقي.
يوفر Spring Framework حوالي 20 وحدة نمطية يمكن استخدامها بناءً على متطلبات التطبيق.
لنبدأ البرمجة الفعلية باستخدام إطار عمل Spring. قبل أن تبدأ في كتابة المثال الأول باستخدام إطار عمل Spring، عليك التأكد من إعداد بيئة Spring الخاصة بك بشكل صحيح كما هو موضح في محاضرة إعداد البيئة في Spring.
تعد حاوية Spring هي جوهر إطار عمل Spring. ستقوم الحاوية بإنشاء الكائنات وربطها معًا وتكوينها وإدارة دورة حياتها الكاملة من الإنشاء حتى التدمير. تستخدم حاوية Spring DI لإدارة المكونات التي تشكل التطبيق. تسمى هذه الكائنات Spring Beans
تُسمى الكائنات التي تشكل العمود الفقري لتطبيقك والتي يتم إدارتها بواسطة حاوية Spring IoC باسم beans. و Bean هي كائن يتم إنشاؤه وتجميعه وإدارته بطريقة أخرى بواسطة حاوية Spring IoC. يتم إنشاء Bean باستخدام بيانات تعريف التكوين التي تقدمها للحاوية.
عند تعريف <bean>، لديك خيار إعلان النطاق. على سبيل المثال، لإجبار Spring على إنتاج مثيل جديد من Bean في كل مرة تكون هناك حاجة إليها، يجب عليك إعلان سمة نطاق للـ Bean لتكون prototype. وبالمثل، إذا كنت تريد من Spring إرجاع نفس مثيل Bean في كل مرة تكون هناك حاجة إليها، يجب عليك إعلان سمة نطاق Bean لتكون singleton ، يدعم إطار عمل Spring النطاقات الخمسة التالية، ثلاثة منها متاحة فقط إذا كنت تستخدم ApplicationContext متوافقًا مع الويب.
من السهل فهم دورة حياة Bean Spring. فعندما يتم إنشاء Bean، قد يلزم إجراء بعض التهيئة لجعلها في حالة قابلة للاستخدام. وعلى نحو مماثل، عندما لم تعد هناك حاجة إلى Bean ويتم إزالتها من الحاوية، فقد يلزم إجراء بعض التنظيف.
تعرف واجهة BeanPostProcessor طرق استدعاء يمكنك تنفيذها لتوفير منطق التمثيل الخاص بك، ومنطق حل التبعية، وما إلى ذلك. يمكنك أيضًا تنفيذ بعض المنطق المخصص بعد أن ينتهي حاوية Spring من تمثيل كائن وتكوينه وتهيئته عن طريق توصيل تنفيذ واحد أو أكثر من تنفيذات BeanPostProcessor.
يمكن أن يحتوي bean definition على الكثير من معلومات التكوين، بما في ذلك وسيطات المنشئ، وقيم الخصائص، والمعلومات الخاصة بالحاوية مثل طريقة التهيئة، و static factory method name، وما إلى ذلك.
يحتوي كل تطبيق قائم على Java على عدد قليل من الكائنات التي تعمل معًا لتقديم ما يراه المستخدم النهائي كتطبيق يعمل. عند كتابة تطبيق Java معقد، يجب أن تكون فئات التطبيق مستقلة قدر الإمكان عن فئات Java الأخرى لزيادة إمكانية إعادة استخدام هذه الفئات واختبارها بشكل مستقل عن الفئات الأخرى أثناء اختبار الوحدة. تساعد عملية حقن التبعيات (أو ما يسمى أحيانًا بالتوصيل) في لصق هذه الفئات معًا وفي نفس الوقت الحفاظ على استقلاليتها.
كما تعلم، يتم تعريف الفئات الداخلية في Java ضمن نطاق فئات أخرى، وبالمثل، فإن العناصر الداخلية هي عناصر يتم تعريفها ضمن نطاق عنصر آخر. وبالتالي، فإن عنصر <bean/> داخل عنصري <property/> أو <constructor-arg/> يسمى عنصرًا داخليًا
لقد رأيت كيفية تكوين نوع البيانات البدائي باستخدام سمة القيمة ومراجع الكائن باستخدام سمة المرجع للعلامة <property> في ملف تكوين Bean الخاص بك. كلتا الحالتين تتعلقان بتمرير قيمة مفردة إلى Bean.
والآن ماذا لو كنت تريد تمرير قيم متعددة مثل أنواع مجموعة Java مثل القائمة والمجموعة والخريطة والخصائص. للتعامل مع الموقف
بدءًا من Spring 2.5، أصبح من الممكن تكوين حقن التبعيات باستخدام التعليقات التوضيحية. لذا، بدلاً من استخدام XML لوصف توصيلات الـ Beans، يمكنك نقل تكوين الـ Bean إلى فئة المكون نفسها باستخدام التعليقات التوضيحية على إعلان الفئة أو الطريقة أو الحقل ذي الصلة.
لقد رأيت حتى الآن كيفية تكوين Spring beans باستخدام ملف تكوين XML. إذا كنت مرتاحًا في تكوين XML، فلن تكون هناك حاجة حقًا إلى تعلم كيفية المتابعة باستخدام التكوين المستند إلى Java لأنك ستحقق نفس النتيجة باستخدام أي من التكوينات المتاحة.
لقد رأيت في جميع الفصول أن جوهر Spring هو ApplicationContext، الذي يدير دورة الحياة الكاملة للحبوب. ينشر ApplicationContext أنواعًا معينة من الأحداث عند تحميل الحبوب. على سبيل المثال، يتم نشر ContextStartedEvent عند بدء تشغيل السياق ويتم نشر ContextStoppedEvent عند إيقاف السياق.
هناك عدد من الخطوات التي يجب اتباعها لكتابة ونشر أحداثك المخصصة. في هذه المحاضرة سوف نشرح كيفية إنشاء ونشر وإدارة أحداث Spring المخصصة.
يعد إطار عمل البرمجة الموجهة نحو الجوانب Aspect oriented programming (AOP) أحد المكونات الرئيسية لإطار عمل Spring. تتضمن البرمجة الموجهة نحو الجوانب تقسيم منطق البرنامج إلى أجزاء مميزة تسمى ما يسمى بالاهتمامات. تسمى الوظائف التي تمتد عبر نقاط متعددة من التطبيق بالاهتمامات المتقاطعة وهذه الاهتمامات المتقاطعة منفصلة مفهوميًا عن منطق عمل التطبيق. هناك العديد من الأمثلة الجيدة الشائعة للجوانب مثل التسجيل والتدقيق والمعاملات التصريحية والأمان والتخزين المؤقت وما إلى ذلك.
عند العمل مع قاعدة البيانات باستخدام JDBC القديم البسيط، يصبح من المرهق كتابة التعليمات البرمجية غير الضرورية للتعامل مع الاستثناءات وفتح وإغلاق اتصالات قاعدة البيانات وما إلى ذلك. ومع ذلك، يتولى إطار عمل Spring JDBC الاهتمام بكل التفاصيل منخفضة المستوى بدءًا من فتح الاتصال وإعداد وتنفيذ عبارة SQL ومعالجة الاستثناءات ومعالجة المعاملات وأخيرًا إغلاق الاتصال.
معاملة قاعدة البيانات عبارة عن سلسلة من الإجراءات التي يتم التعامل معها كوحدة عمل واحدة. يجب أن تكتمل هذه الإجراءات بالكامل أو لا يكون لها أي تأثير على الإطلاق. تعد إدارة المعاملات جزءًا مهمًا من تطبيقات المؤسسات الموجهة إلى أنظمة إدارة قواعد البيانات العلائقية لضمان سلامة البيانات وتناسقها. يمكن وصف مفهوم المعاملات بالخصائص الرئيسية الأربع التالية الموصوفة باسم ACID
يوفر إطار عمل Spring Web MVC بنية Model-View-Controller (MVC) ومكونات جاهزة يمكن استخدامها لتطوير تطبيقات ويب مرنة ومترابطة بشكل فضفاض. يؤدي نمط MVC إلى فصل الجوانب المختلفة للتطبيق (منطق الإدخال ومنطق العمل ومنطق واجهة المستخدم)، مع توفير ارتباط قوي بين هذه العناصر.
شرح كيفية توليد كود JSON من تطبيق الويب لكي يكون صالح للاستخدام على الفرونت إند والموبايل
Spring Framework هو منصة Java توفر دعمًا شاملاً للبنية الأساسية لتطوير تطبيقات Java. يتعامل Spring مع البنية الأساسية حتى تتمكن من التركيز على تطبيقك.
يتيح لك Spring إنشاء تطبيقات من "كائنات Java القديمة البسيطة" (POJOs) وتطبيق خدمات المؤسسة بشكل غير جراحي على POJOs. تنطبق هذه القدرة على نموذج برمجة Java SE وعلى Java EE الكامل والجزئي.
يعالج مكون عكس التحكم (IoC) في Spring Framework هذه المشكلة من خلال توفير وسيلة رسمية لتكوين مكونات متباينة في تطبيق يعمل بكامل طاقته وجاهز للاستخدام. يقنن Spring Framework أنماط التصميم الرسمية ككائنات من الدرجة الأولى يمكنك دمجها في تطبيقك (تطبيقاتك) الخاص. تستخدم العديد من المنظمات والمؤسسات Spring Framework بهذه الطريقة لتصميم تطبيقات قوية وقابلة للصيانة.
يتكون Spring Framework من ميزات منظمة في حوالي 20 وحدة. يتم تجميع هذه الوحدات في Core Container وData Access/Integration وWeb وAOP (البرمجة الموجهة للجوانب) وInstrumentation وTest، كما هو موضح في الرسم التخطيطي التالي.
توفر وحدات Core وBeans الأجزاء الأساسية للإطار، بما في ذلك ميزات IoC وDependency Injection. يعد BeanFactory تنفيذًا متطورًا لنمط المصنع. فهو يزيل الحاجة إلى العناصر الفردية البرمجية ويسمح لك بفصل تكوين وتحديد التبعيات عن منطق البرنامج الفعلي.
تتكون طبقة الوصول إلى البيانات/التكامل من وحدات JDBC وORM وOXM وJMS وTransaction.
توفر وحدة JDBC طبقة تجريد JDBC التي تزيل الحاجة إلى إجراء ترميز JDBC الممل وتحليل أكواد الخطأ الخاصة بمورد قاعدة البيانات.
تتكون طبقة الويب من وحدات Web وWeb-Servlet وWeb-Struts وWeb-Portlet.
توفر وحدة الويب في Spring ميزات تكامل أساسية موجهة نحو الويب مثل وظيفة تحميل الملفات متعددة الأجزاء وتهيئة حاوية IoC باستخدام مستمعي servlet وسياق تطبيق موجه نحو الويب. ويحتوي أيضًا على الأجزاء المتعلقة بالويب لدعم الاتصال عن بعد في Spring.