مقدمة
كمبرمجة تعمل في تطوير Java ، فإن أهمية الربيع هي بديهية. قد تتعامل مع أطر الربيع كل يوم. تم تسمية الربيع بنفس القدر ، مما يجلب راحة شبيهة بتطوير تطبيقات Java. يمكن القول أن الربيع هو أساس ضروري لأي مطور Java للوصول إلى التكنولوجيا المتقدمة. بالطبع ، ليس من السهل تعلم الربيع بشكل جيد ، خاصة لفهم المبادئ الأساسية في الربيع. يستغرق الأمر الكثير من الوقت والطاقة لدراستها بعناية ، والتجارب والخطأ باستمرار والتلخيص في المشاريع الفعلية من أجل تشكيل تفكيرك وتفهمك. كان لدى المدون فهم ضحل للغاية لربيع في البداية ، وكان من الممكن الاعتماد على المشكلة التي يمكن أن يحلها دو نيانغ بطريقة عامة عند مواجهة مشاكل في المشروع. ومع ذلك ، لأكثر من عام منذ أن كان الربيع على اتصال مع الربيع ، فإن فهم نظامه الإطاري فوضوي للغاية ، ولا تزال التكنولوجيا العميقة مثل الضباب ، ولم تشكل إدراكها وفهمها ، وهو أمر غير مواتٍ للغاية لتحسين تكنولوجيا البرمجة. في ضوء ذلك ، قررت أن أهدأ وتعلم إطار الربيع بشكل منهجي من البداية إلى النهاية ، وتسجيل تفاصيل التعلم ومشاركة المعرفة التقنية من خلال شكل مدونة. حسنًا ، دعنا نصل إلى النقطة-
مقدمة في إطار الربيع الأساسي
DI (حقن التبعية) ، حقن التبعية ، ومفهوم آخر نسمع عنه غالبًا ، ينفذ فعليًا نفس الوظائف مثل IOC (انعكاس التحكم) ، ولكن يتم شرح نفس الوظائف من وجهات نظر مختلفة. لن يذهب المدون هنا لتحليل الكثير ، وهناك الكثير من التفسيرات على Baidu. ما نحتاج إلى معرفته هو ماهية حقن التبعية ولماذا هو حقن التبعية. لفهم هاتين النقطتين ، أعتقد أن التعلم الربيع هو الأفضل من حيث التفكير.
عندما لا يتم استخدام الربيع - أي عندما لا يكون هناك حقن تبعية ، يكون من الصعب تحقيق التعاون الوظيفي المتبادل بين فئات تطبيقات Java. إذا احتاجت فئة معينة (أ) إلى تنفيذ وظائفها ، إذا كانت بحاجة إلى الاعتماد على تعاون فئة أخرى (ب) ، فمن الضروري إنشاء كائن من الفئة B بنشاط في الفئة A لإكمال الوظائف باستخدام أساليب الفئة B (يجب ألا تقلق بشأن الأساليب الثابتة والمواقف الأخرى هنا). هذا يعادل أن تكون من الفئة "أ" مسؤولة عن إدارة دورة حياة كائنات الفئة ب بأكملها. في الحالات البسيطة للغاية ، يبدو أنه لا توجد مشكلة في كائنات جديدة لفئة أخرى في فصل واحد ، ولكن العلاقة التعاونية بين فئات التطبيقات المعقدة والفصول الدراسية غالباً ما تكون متعددة الأطراف. نحن لا نعرف عدد الكائنات البديلة التي يعتمد عليها تنفيذ وظيفة الفصل للتعاون. لذلك ، فإن إنشاء كائنات في فئة وإدارة دورة حياة الكائن بأكملها سيؤدي إلى اقتران الكود العالي والتعقيد الذي لا يمكن تصوره. لذلك ، تخيل أنه إذا تمكنا من تسليم دورة حياة كائن ما إلى مكون جهة خارجية للإدارة ، وعندما يحتاج الفصل إلى كائن آخر ، سيتم إنشاء مكون الطرف الثالث مباشرة إليه. وبهذه الطريقة ، لا يمكن للفصل التركيز إلا على تنفيذ وظائفه الخاصة دون إدارة دورة حياة كائنات الفئة الأخرى ، فإن وظائف مثل هذه الفئة أبسط بكثير. نعم ، يجب أن تكون قد فهمت أن الربيع هو هذا المكون من الطرف الثالث. نحتاج فقط إلى إخبار الربيع (الحاوية) التي تحتاج إلى إدارة الكائنات ، ولا يتعين علينا أن نهتم بكيفية إنشاء إطار الربيع كائنات. وبهذه الطريقة ، عندما يتطلب مجموعة معينة من الفئة A كائن من الفئة B ، إذا تم الإعلان عن الفئة B وتسليمها إلى إدارة حاوية الربيع ، فحينئذٍ عندما يتم تشغيل البرنامج إلى الفئة A ويتطلب من الفئة B ، فإن حاوية Spring Configner Compoing B في الفئة A من خلال حقن التبعية للمساعدة في إكمال وظائف العمل. من خلال حقن التبعية لمكونات الطرف الثالث ، لم تعد الكائنات تحتاج إلى إنشاء وإدارة التبعيات بين الفصول نفسها. هناك أيضًا العديد من الطرق لإنشاء حقن التبعية للكائنات ، مثل حقن الواجهة ، وحقن طريقة البناء ، وحقن طريقة Setter ، وما إلى ذلك. في الحديث عن هذا ، يجب أن يكون لديك فهم مباشر نسبيًا لحقن التبعية. بالنسبة إلى سبب الحاجة إلى حقن التبعية ، فقد أوضحت المقالة أعلاه ذلك بوضوح شديد. من أجل تقليل الاقتران بين المكونات في الكود ، يجب أن نستخدم أولاً أمثلة بسيطة لتجربة بشكل حدسي فوائد حقن التبعية على إدارة الأشياء بنفسك -
رجل الطبقة العامة ينفذ سيارة {QQCAR الخاصة البشرية ؛ Man Man () {this.car = new qqcar () ؛ } Override public void xiabibi () {} public void drivecar () {car.drive () ؛ }}هناك تطبيقان لسيارة الواجهة: مرسيدس بنز وسيارة QQ. في الرموز المذكورة أعلاه لـ Man و QQCAR ، قام السائق المخضرم بإنشاء كائنات سيارة QQ فقط من خلال المنشئ ، حتى يتمكن من قيادة سيارة QQ فقط. إذن ماذا يجب أن يفعل السائق المخضرم إذا أراد قيادة مرسيدس بنز؟ هل تطلب منه إعادة إنشاء كائن مرسيدس بنز؟ يبدو أن مثل هذا الرمز المقترن بدرجة عالية لا حول له ولا قوة ، لذلك سنقوم ببعض التحسينات على الكود أعلاه عن طريق حقن الكائنات:
رجل الطبقة العامة يقوم بتنفيذ Human {Private Car Car ؛ الرجل العام (سيارة السيارة) {this.car = car ؛ } Override public void xiabibi () {} public void drivecar () {car.drive () ؛ }}يحجب الكود أعلاه كائنات محددة تستند إلى خصائص متعددة الأشكال من خلال حقن واجهة المنشئ ، بحيث يمكن للسائقين المخضرمين قيادة ما يريدون. هذا هو فائدة حقن التبعية.
AOP (البرمجة الموجهة الجانب) ، البرمجة الموجهة نحو الوجه. في التنمية اليومية ، عندما نكممل وظيفة عمل معينة ، نكتب الكثير من التعليمات البرمجية. عندما نحسن الرمز أخيرًا ، نجد أن الرمز الذي يكمل العمل قد يكون بالفعل جملتين فقط ، والباقي ليسوا ذا صلة جدًا لهذا الجزء من العمل. يتم استخلاصه بالكامل فقط لتنفيذ رمز تكنولوجيا معين. بطبيعة الحال ، سنقوم باستخراجها في فئة الأدوات ، بحيث لا يكون كل شيء تستخدمه على ما يرام مع استدعاء طريقة الأداة. دعونا ننظر إليها أعلى قليلاً. بالإضافة إلى إكمال وظائف الأعمال ذات الصلة ، تتضمن المكونات الوظيفية لكل وحدة عمل عمليات إضافية مثل السجلات والمعاملات والتحكم في الأمان. هذه ليست الوظائف الأساسية للوحدة ، لكنها لا غنى عنها. إذا تمت إضافة هذه الوظائف الإضافية إلى الكود ، فسيظهر كل مكون من نظام العمل متكررًا جدًا ويجعل رمز العمل يظهر مربكًا وغير نقي بما فيه الكفاية. في هذا الوقت ، تسأل الله ، هل يمكن أن يركز رمز عملك فقط على تنفيذ العمل ، وتجاهل أي أشياء غير ذات صلة مثل السجلات والمعاملات وما إلى ذلك؟ أوه ، قال الله إنه على ما يرام ، لذلك كان هناك AOP. إذا كان الغرض من حقن التبعية هو الحفاظ على المكونات التعاونية في حالة اقتران فضفاض نسبيًا ، فإن AOP يفصل الوظائف التي تنتشر عبر التطبيق لتشكيل مكونات قابلة لإعادة الاستخدام. من حيث الشروط العادية ، والسجلات ، والمعاملات ، وما إلى ذلك ، كلها مكونات قابلة لإعادة الاستخدام. يمكننا استخراج السجلات والمعاملات والأمان والرموز الوظيفية الأخرى تمامًا في أجزاء مختلفة من رمز العمل وتصبح مكونًا منفصلًا للأداة. أعلن ذلك كقسم وظيفي في تكوين الربيع ، ثم أخبر الربيع أين ومتى تريد استخدام (مقطع) هذه المكونات القابلة لإعادة الاستخدام. هذا هو تفسيري البسيط للقسم الموجهة للوجه. هذه المقالة هي مجرد مقدمة ، وبالتالي فإن المدون سيشرح باختصار المفهوم ولن يقوم بإنشاء تطبيقات محددة أو تكوين. سيتم تقديمه في منشورات المدونة اللاحقة. مرحبًا بك في إلقاء نظرة.